我正在使用Spring MVC。我有一个web.xml
和一个myapp.xml
。在myapp.xml
我正在利用spring beans profile。所以,我有两个配置文件dev
和test
。每个都有不同的bean,它们基于环境变量启动。
我想知道web.xml
是否可以做类似的事情?在web.xml中,我有以下内容,我只想在环境变量为test
<filter>
<filter-name>springSecurity</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurity</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我该怎么做?
答案 0 :(得分:5)
在您的情况下,您已经使用DelegatingFilterProxy
将实际处理委托给名为springSecurity
的Spring bean。
因此,您需要使用Filter
配置文件中声明为springSecurity
的{{1}}的无操作实现替换您的Spring Security配置。
答案 1 :(得分:2)
不直接。 web.xml
是一种非常静态的格式。
通常的解决方法是安装一个委托给注入bean的过滤器,然后使用配置文件替换这个bean。
答案 2 :(得分:2)
您可以在web.xml(和server.xml)中使用属性变量替换:
<url-pattern>${urlPattern}</url-pattern>
您将传递 JVM 参数,例如-DurlPattern="/"
您可以使用 o / s 环境变量,如下所示:
set "CATALINA_OPTS=-DurlPattern=%SOME_SYSTEM_ENVIRONMENT_VARIABLE%"
bin/setenv.bat
中的(您需要创建此文件)。类似的功能* nix。