前言
目前项目一直使用的ssm结构,相对springboot存在,ssm配置起来的确繁琐。但是有个好处,对spring的一些原理能理解更深一点。这里记录一下刚刚的心得
配置
- 贴下我的配置。ssm这里我存在2个xml。spring的配置和spring-mvc配置。
spring.xml
<context:component-scan base-package="com.wuwenfu.aily">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
spring-mvc.xml
<context:component-scan base-package="com.wuwenfu.aily.controller" >
</context:component-scan>
解释
-
这个标签主要功能就是扫描,spring就会去自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描到文件中带有@Service,@Component,@Repository,@Controller等这些注解的类,则把这些类注册为bean
-
Use-default-filter 默认为true,那么会对base-package包或者子包下所有的java类进行扫描,并把匹配的java类注册成bean。此时如果配置context:incluce-filter 多此一举。
如果为false,这必须配置context:incluce-filter 否则会无法扫描注册类。
-
子标签 context:incluce-filter 表示会扫描符合该过滤器的类。
-
子标签 context:exclude-filter 表示会排除符合该过滤器的类。
-
过滤器表
其中经常使用的过滤器是
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
通常表示spring.xml不扫描Controller,而交给spring-mvc.xml来扫描。否则会导致2次注册。
网友评论