如果你已经厌烦使用XML配置Spring Bean,那么你可以尝试使用普通的java类来配置bean,这样避免了XML中字符串导致的错误,让异常从运行期提前到了编译器
以下是基于java配置bean的详细过程,文章的最后附上源码
1.首先配置组件扫描器,这也是唯一需要配置xml的地方
<context:component-scan base-package="com.yonyou.config"/>
2.使用@Configuration注解编写配置类
@Configuration
public class JavaConfig {
@Bean
public User user(){
User user = new User("jay","1234");
user.setAddress(this.addr());
return user;
}
@Bean
public Address addr(){
Address addr = new Address();
addr.setProvice("BJ");
addr.setCity("beijing");
return addr;
}
}
第一步的组件扫描配置可以扫描到@Configuration注解,表示这是一个用于配置Spring的类
从代码中可以看到方法上都加了@Bean,表示这个方法返回的是一个Bean,由Spring容器管理,而方法名就是Bean的id
同时为Bean装配属性也变得十分简单,可以用构造器注入,也可以用setter注入,更加符合java的编写习惯
3.编写测试代码
目前已经向Spring容器注册了Bean,那么怎么取出来呢?
ApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
Address address = (Address) context.getBean("addr");
System.out.println(address);
User user = (User) context.getBean("user");
System.out.println(user);
可以看到这里使用了AnnotationConfigApplicationContext,传入的参数是java配置类的字节码对象
输出结果如下:
Address [provice=BJ,city=beijing]
User [username=jay,password=1234,address=Address [provice=BJ,city=beijing]]