在IoC容器中装配Bean-----------基于Java类的配置
JavaConfig是Spring的一个子项目, 它皆在通过Java类的方式提供 Bean的定义信息. 普通的POJO只要标注了 @Configuration注解, 就可以为 Spring 容器提供Bean定义的信息了. 每个标注了 @Bean注解的方法都相当于提供了 Bean的定义信息.
使用 @Configuration 注解标注配置类:
在不同配置类中引用定义的Bean, 因为 @Configuration 注解类本身已经标注了 @Component 注解, 它们可以像普通的Bean一样被注入到其他Bean中去, 在 Config1 中使用 @Autowired注解使 Config2 Bean自动注入进来, 便可以引用 Config2 定义的Bean.
调用 c.getStudent() , 是从 Spring容器中返回对应的 Bean. 如果在 @Bean 处标注了 @Scope("protoype"), 则每次调用 c.getStudent() 都会返回一个新的 Bean.
1.基于Java类的配置信息启动 Spring 容器
Spring 提供了一个 AnnotationConfigApplicationContext 类. 它能够直接通过标注 @Configuration 的Java类启动容器.
AnnotationConfigApplicationContext 支持加载多个 @Configuration 的Java类. 然后通过刷新容器应用配置这些类.
也可以通过 @Import 注解, 将多个配置类组装到一个配置类中, 只需要加载一个配置类就可以.
2.通过 XML配置的文件引用 @Configuration 的配置
标注了 @Configuration 的类也是一个 Bean. 可以被 Spring的<context:component-scan> 扫描到. 在 XML中通过<context:component-scan> 扫描到相应的配置类, 再通过 XML配置文件启动 Spring容器.
3.通过 @Configuration 配置类引入 XML配置信息
引入 config.xml 配置文件, 并使用 @Resource 注解, 将 Student Bean自动注入到 Person Bean 的构造函数中去.