今天在做项目的时候,发现一个客户个性化的实现类并没有被程序调用,百思不得其解,明明已经实现了接口的方法,并且tomacat中配置:-Dserver.root 已经改成客户环境下的为什么还没调用到。后来想到有可能是没注入到spring中,但这个既不是业务控制(Controller)、又不是业务逻辑(Service)、也不是数据访问(Dao)的类不知道引入哪个好些。查看公司类似的类中通过@component 注解把该类注入到spring中,交给spring来管理才明白怎么回事。(下面做个归类,方便以后遗忘了好查看。)
1、@controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
2、@service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
3、@repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
4、@component (把普通pojo实例化到spring容器中,相当于配置文件中的 )
下面写这个是引入component的扫描组件
<context:component-scan base-package=”com.mmnc”>
总结:
1、被@controller 、@service、@repository 、@component 注解的类,都会把这些类纳入进spring容器中进行管理。
2、当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类