springMVC自动扫描@controller注解的bean

来源:互联网 发布:淘宝拍摄相机推荐 编辑:程序博客网 时间:2024/05/16 17:05



若要对@controller注解标注的bean进行自动扫描,必须将<context:component-scan base-package="包路径.controller"/>放置在dispatcherservlet的配置文件中,若配置在ContextLoaderListener的配置文件applicationContext.xml中则不起作用


在spring mvc中@Controller注解的bean必须由DispatcherServlet初始化的children webApplicationContext来管理,在DispatcherServlet初始化的context中会扫描当前容器所有的bean实例,根据类级别以及方法级别的映射信息注解组装成对应的HandleMappering信息,但是ContextLoaderListener是不具备这个功能的。


contextLoaderListener对@service是可以扫描的,可以理解为,由DispatcherServlet加载相当于在ContextLoaderListener加载的基础上增加了controller的处理,所以DispatcherServlet加载的controller和bean都好用,ContextLoaderListener加载的bean好用而controller不好用


web层controlller配置文件最好独立于其他业务bean配置文件,所以一般将对@controller的自动扫描配置在dispatcherservlet的配置文件中,而将对@service和@Repository的扫描配置在contextloaderlistener的配置文件中


原创粉丝点击