我没有搞太清楚<contxt:include-filter> 跟<contxt:exclude-filter> 有什么区别? 怎么样理解?
项目spring mvc 中不配置<contxt:exclude-filter> 也能启动。如果配置了有何用处?
<context:component-scan/>扫描查找使用构造型(stereotype)注解所标注的类,如@Component(组件),@Service(服务),@Controller(控制器),@Repository(数据仓库)
其属性base-package指明了要扫描的包的位置,这里是要扫描com.MVC.helloworld
属性use-default-filters="false"指明是否使用默认的过滤器,默认值true,若为true,那么其子节点 过滤器<context:include-filter/> 是选中符合条件的内容,如果为false则排除符合过 滤器子节点 条件的内容
<context:include-filter/>过滤器是<context:component-scan/>的子节点,他可以有多个这样的过滤器子节点
其属性type指明了要扫描的是注解(annotation),还可以扫描类或接口(type= "assignable"),还可以使用正则匹配(type= " regex")
属性expression是过滤条件,由于父节点的use-default-filters属性默认为true,org.springframework.stereotype.Controller代表 选中 带有@controller注解的类并将其注册成bean,该属性还可以直接指明某个类或接口并将其注册成bean,甚至支持正则表达式,如:<context:exclude-filter type="regex" expression=".service.*"/>
<contxt:include-filter>指定包里面可以扫描加载的类,如果不填那就默认为加载包里面所有的类。
<contxt:exclude-filter> 指定包里面不加载的类,只要实现了指定接口的类(org.springframework.stereotype.Controller)都不加载