1、在Spring 3.0中引入的AnnotationConfigApplicationContext 。这种通用ApplicationContext 实现不仅能够接受 @Configuration 类作为输入,还能接受 @Component 使用JSR-330元数据注释的普通类和类。
2、当 @Configuration 提供类作为输入时, @Configuration 类本身被注册为bean定义,并且 @Bean 类中的所有声明的方法也被注册为bean定义。
3、当 @Component 提供JSR-330类时,它们被注册为bean定义,并且假定DI元数据例如 @Autowired 或@Inject 在必要时在这些类中使用。
4、与实例化a时Spring XM雉搽妤粲L文件用作输入的方式大致相同 ClassPathXmlApplicationContext ,可以在@Configurati泠贾高框on 实例化时使用类作为输入 AnnotationConfigApplicationContext 。这允许完全无XML使用Spring容器,如以下示例所示:
5、如前所述, AnnotationConfigApplicationContext 并不仅限于使用 @Configuration 类。@Component 可以将任何或JSR-330带注释的类作为输入提供给构造函数,如以下示例所示:
6、前面的例子中假定 MyServiceImpl , Dependency1 以及 Dependency2 使用Spring依赖注入注解,例如 @Autowired 。
7、可以 AnnotationConfigApplicationCo艘绒庳焰ntext 使用无参构造函数实例化一个,然后使用该regist髫潋啜缅er() 方法对其进行配置。这种方法在以编程方式构建时特别有用AnnotationConfigApplicationContext 。以下示例显示了如何执行此操作:
8、要启用组件扫描,您可以 @Configuration 按如下方式注释您的类:
9、在前面的示例中, com.acme 扫描包以查找任何已 @Component 注释的类,并将这些类注册为容儡泌掩羞器中的Spring bean定义。 AnnotationConfigApplicationContext 公开 scan(String…) 方法以允许相同的组件扫描功能,如以下示例所示: