Spring <context:annotation-config/> 解说
在spring中,如果我们想使用注解开发,那么我们是需要创建对应的类的,即创建一个对应的bean对象,例如
-
若要使用@Autowired注解,那么必须创建(声明)(即注入到IOC容器中)
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor "/>
-
以此类推,若要使用@Resource、@PostConstruct、@PreDestroy等注解就必须声明CommonAnnotationBeanPostProcessor类
-
若想使用 @PersistenceContext 注解,就必须声明PersistenceAnnotationBeanPostProcessor的Bean。
-
若想使用 @Required 的注解,就必须声明RequiredAnnotationBeanPostProcessor的Bean。
注册这4个BeanPostProcessor的作用,就是为了你的系统能够识别相应的注解。那么, 当我们开发时难道一个一个去声明吗? 这就破坏了轮子理论(哈哈)
于是聪明的Spring就给我们提供了 <context:annotation-config/> 这种简化配置的方式,它会自动帮我们完成这些声明。不过我们一般不用它,我们一般用 <context:component-scan base-package="com.xxx"/> 因为它不仅有上面的功能,还具有自动扫描以及自动注册bean的功能
这一路,灯火通明