Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要在SpringMVC(非SpringBoot)中为特定配置文件注册第三方筛选器_Java_Spring_Spring Mvc_Filter_Servlet Filters - Fatal编程技术网

Java 需要在SpringMVC(非SpringBoot)中为特定配置文件注册第三方筛选器

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>

我必须在我的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>

//添加自定义筛选器类和其他属性,如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模式..如果你需要定制配置,你可以试试