[内容有误,请看参考和评论区]Spring 的xml配置里如何仅通过注解使用(annotation-config 和 component-scan的不同)
这个问题也算看了好几遍还没记住的问题,先抛结论,如果是为在Spring中声明注解,不需xml配置的话,使用<context:component-scan base-package="com">
类似的就可以实现无bean声明。
然后,我们详细说下这两个配置的作用:
<context:annotation-config/>
的作用:它是对已注册Bean的进行操作的配置,也就是说,Bean需要首先通过某种方式(比如Xml配置,或者其他注解)被注册,然后使用这个配置,可以对已注册的Bean进行进一步操作(比如注入到某个类的内部),也就是说,这个配置是用于“激活”已注册的Bean的,让已注册的Bean开始工作。<context:component-scan />
的作用:<context:component-scan />
首先有和<context:annotation-config/>
一样的作用,此外,它还可以扫描指定包下的类,将拥有注解的它们注册到Spring中。
综上,也就是说,如果用<context:annotation-config/>
,我们还需要配置Xml注册Bean,而使用<context:component-scan />
的话,注册的步骤都免了,当然前提是我们对需要扫描的类使用的注解(比如@Componet,@Service),而如果同时使用两个配置的话,<context:annotation-config/>
会被忽略掉。
参考博客:
- GOOD spring context:annotation-config 跟 context:component-scan诠释及区别
- annotation-driven,annotation-config,component-scan的区别与作用