使用基于java类的配置信息
普通类
package com.smart.conf;
public class UserDao {
}
package com.smart.conf;
public class LogDao {
}
package com.smart.conf;
public class LogonService {
private LogDao logDao;
private UserDao userDao;
public LogDao getLogDao() {
return logDao;
}
public void setLogDao(LogDao logDao) {
this.logDao = logDao;
}
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void printHelllo(){
System.out.println("hello!");
}
}
使用注解
package com.smart.conf;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConf {
@Bean
public UserDao userDao(){
return new UserDao();
}
@Bean
public LogDao logDao(){
return new LogDao();
}
@Bean
public LogonService logonService(){
LogonService logonService = new LogonService();
logonService.setLogDao(logDao());
logonService.setUserDao(userDao());
return logonService;
}
}
相当于XML
<bean id="userDao" class="com.smart.anno.UserDao"/>
<bean id="logDao" class="com.smart.anno.LogDao"/>
<bean id="logonService" class="com.smart.conf.LogonService"
p:logDao-ref="userDao" p:userDao-ref="logDao"/>
SpringBoot测试
普通类
package com.toltech.config;
/**
* Created by wanggs on 2017/8/9.
*/
public class Dog {
public void eat(){
System.out.println("%%%%%%%%%%%%%%%%%%%");
}
}
注解
/**
* Created by wanggs on 2017/8/9.
*/
@Configuration
public class Animal {
@Bean
public Dog dog(){
return new Dog();
}
}
测试
package com.toltech
import com.toltech.config.Animal
import com.toltech.config.Dog
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.context.annotation.ComponentScan
import org.springframework.test.context.junit4.SpringRunner
@RunWith(SpringRunner.class)
@SpringBootTest
@ComponentScan("com.toltech.config")
public class ApplicationTests {
@Autowired
Animal animal
@Autowired
Dog dog
@Test
public void contextLoads() {
animal.dog().eat()
}
@Test
public void dog(){
dog.eat()
}
}