Spring、SpringMVC中的exclude-filter和include-filter

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring、SpringMVC中的exclude-filter和include-filter相关的知识,希望对你有一定的参考价值。

参考技术A

1、Spring-SpringMVC项目中一般都会把applicationContext.xml (Spring配置文件)和spring-mvc.xml(SpringMVC配置文件)进行分开配置。

在applicationContext.xml 只对一些事务逻辑的注解扫描:@Component、@Repository、@Service

在Spring-common.xml中只对控制器注解扫描:@Controller、@RestController、@ControllerAdvice

2、了解component-scan的几个属性

basePackages :Spring将扫描的基础package名,Spring会扫描该包以及其子孙包下的所有类

useDefaultFilters :默认为true,此时Spring扫描类时发现如果其被标注为 @Component、@Repository、@Service、@Controller则自动实例化为bean并将其添加到上下文中,如果设置为false,即使将其标注为@Component或者其他,Spring都会忽略

includeFilters : 指定扫描时需要实例化的类型,我们可以从名字看到这是一个Filter,你可以自己定义该Filter,Spring为我们提供了一套方便的实现,我们可以根据标注、类、包等相关信息决定当扫描到该类时是否需要实例化该类,需要注意的是如果你仅仅想扫描如@Controller不仅要加includeFilters,还需要将useDefaultFilters设置为false

excludeFilter :指定扫描到某个类时需要忽略它,实现和上一个Filter一样,区别只是如果Filter匹配,Spring会忽略该类

这样includeFilters以及excludeFilterF的行为就很清楚了,Spring每扫描一个类,都会经过includeFilters以及excludeFilters,如果某个Filter匹配,就执行相应的操作(实例化或者忽略)

3、applicationContext.xml 以及 spring-mvc.xml 自动扫描注解的配置实例

applicationContext.xml

spring-mvc.xml

以上是关于Spring、SpringMVC中的exclude-filter和include-filter的主要内容,如果未能解决你的问题,请参考以下文章

springmvc mvc:exclude-mapping错误提示

SpringMVC 之 mvc:exclude-mapping 不拦截某个请求

关于springmvc拦截器,不拦截jsp的问题

SpringBoot配置

springmvc的拦截器,怎么设置不拦截的url

探索 SpringBoot 中的 SpringMVC