5

我正在使用 Spring MVC。我有一个web.xml和一个myapp.xml。在myapp.xml我正在利用 spring beans 配置文件中。所以,我有两个配置文件devtest. 每个都有基于环境变量启动的不同 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>

我怎样才能做到这一点?

4

3 回答 3

5

在您的情况下,您已经使用DelegatingFilterProxy它将实际处理委托给名为springSecurity.

Filter因此,您需要用您的配置文件中声明的无操作实现替换您的 Spring SecurityspringSecurity配置dev

于 2013-09-16T15:42:52.567 回答
2

不是直接的。web.xml是一种非常静态的格式。

通常的解决方法是安装一个过滤器,委托给注入的 bean,然后使用配置文件替换这个 bean。

于 2013-09-16T15:30:12.890 回答
2

您可以在 web.xml(和 server.xml)中使用属性变量替换:

<url-pattern>${urlPattern}</url-pattern>

您将在哪里传递一个JVM参数,例如-DurlPattern="/"

您可以使用o/s环境变量,如下所示:

set "CATALINA_OPTS=-DurlPattern=%SOME_SYSTEM_ENVIRONMENT_VARIABLE%"

in bin/setenv.bat(您需要创建此文件)。*nix 中的类似功能。

于 2013-10-15T20:29:48.513 回答