Java 需要在SpringMVC(非SpringBoot)中为特定配置文件注册第三方筛选器
我必须在我的Spring MVC应用程序(不是Spring Boot)中注册一个定制的第三部分非Spring过滤器 唯一可以看到的方法是在web.xml文件中添加filter标记,如Java 需要在SpringMVC(非SpringBoot)中为特定配置文件注册第三方筛选器,java,spring,spring-mvc,filter,servlet-filters,Java,Spring,Spring Mvc,Filter,Servlet Filters,我必须在我的Spring MVC应用程序(不是Spring Boot)中注册一个定制的第三部分非Spring过滤器 唯一可以看到的方法是在web.xml文件中添加filter标记,如 <filter> //Add custom filter class and other properties like order .. </filter> <filter-mapping> //Add url pattern </filter-mapping>
<filter>
//Add custom filter class and other properties like order ..
</filter>
<filter-mapping>
//Add url pattern
</filter-mapping>
//添加自定义筛选器类和其他属性,如order。。
//添加url模式
这种方法的问题是,我希望只有在设置了特定的spring概要文件时才调用这个过滤器。换句话说,我想要一个可以用@Profile(“staging”)注释的类将过滤器注册为Springbeans
在SpringBoot中,我看到我们可以使用FilterRegistrationBean注册过滤器,并用概要注释标记类
在SpringMVC中也有这样的方法吗。在过去的几天里,我一直在寻找一个最佳的解决方案,但是找不到太多的信息
关于使用概要注释的解决方案将非常有助于使项目一致,因为与该环境相关的所有其他内容也都是使用概要注释编写的
编辑1:
弹簧启动方式:
@Bean
public FilterRegistrationBean<ThirdPartySecurityFilter> securityFilterFilterRegistrationBean() {
final FilterRegistrationBean<DMPSecurityFilter> registrationBean = new FilterRegistrationBean();
final ThirdPartySecurityFilter thirdPartySecurityFilter = new ThirdPartySecurityFilter();
registrationBean.setFilter(thirdPartySecurityFilter);
registrationBean.addUrlPatterns("/rest/v2/*");
registrationBean.setOrder(1); //set precedence
return registrationBean;
}
@Bean
公共FilterRegistrationBean安全性FilterFilterRegistrationBean(){
final FilterRegistrationBean registrationBean=新FilterRegistrationBean();
最终第三方安全过滤器第三方安全过滤器=新的第三方安全过滤器();
setFilter(第三方安全过滤器);
registrationBean.addUrlPatterns(“/rest/v2/*”);
registrationBean.setOrder(1);//设置优先级
返回注册bean;
}
以上是我希望在Spring MVC中实现的目标您是否尝试将过滤器声明为
@Bean@Profile(“myProfile”)
?它应该由Spring MVC自动选择,但是我如何设置过滤器的顺序和url模式..如果你需要定制配置,你可以试试