Spring框架学习[Annotation 介绍](五)

2014-11-24 03:11:11 · 作者: · 浏览: 10
可。示例如下:

[java] view plaincopy
  1. // 假设存在如下的 @Configuration 类:
  2. package bookstore.config;
  3. import bookstore.dao.*;
  4. @Configuration
  5. public class MyConfig{
  6. @Bean
  7. public UserDao userDao(){
  8. return new UserDaoImpl();
  9. }
  10. }

    此时,只需要在Spring XML配置文件中做如下声明即可:
    [xhtml] view plaincopy
    1. ……
     

    由于启用了针对注解的 Bean 后处理器,因此在 ApplicationContext 解析到 MyConfig 类时,会发现该类标注了 @Configuration 注解,

    随后便会处理该类中标注 @Bean 的方法,将这些方法的返回值注册为容器总的 Bean。

    对于以上的方式,如果存在多个标注了 @Configuration 的类,则需要在 XML 文件中逐一列出。另一种方式是使用前面提到的自动扫描功能

    ,配置如下:

    [xhtml] view plaincopy
    1. 如此,Spring 将扫描所有 demo.config 包及其子包中的类,识别所有标记了 @Component、@Controller、@Service、@Repository

      注解的类,由于 @Configuration 注解本身也用 @Component 标注了,Spring 将能够识别出 @Configuration 标注类并正确解析之。

      对于以注解为中心的配置方式,只需使用 @ImportResource 注解引入存在的 XML 即可,如下所示:

      [java] view plaincopy
      1. @Configuration
      2. @ImportResource(“classpath:/bookstore/config/spring-beans.xml”)
      3. public class MyConfig{
      4. ……
      5. }
      6. // 容器的初始化过程和纯粹的以配置为中心的方式一致:
      7. AnnotationConfigApplicationContext ctx =
      8. new AnnotationConfigApplicationContext(MyConfig.class);
      9. ……