1

我在 web.xml 中有一个 Spring MVC Web 应用程序,其中包含以下内容:

<filter>
    <filter-name>foo</filter-name>
    <filter-class>bar.foo</filter-class>
    <init-param>
        <param-name>yada</param-name>
        <param-value>baz</param-value>
        <description>fooz.</description>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>foo</filter-name>
    <url-pattern>*.htm</url-pattern>
</filter-mapping>

这对于在生产环境中运行非常好,但在我在本地机器上开发时却不行。

有没有办法设置例如 Maven 属性,以便根据活动的构建配置文件启用或禁用它?

4

1 回答 1

3

只需在过滤器的代码中执行检查即可。

private boolean disabled;

@Override
public void init(FilterConfig config) throws ServletException {
    disabled = lookupSomeEnvironmentVariableAndReturnBooleanAccordingly();
}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    if (disabled) {
        chain.doFilter(request, response);
        return;
    }

    // Original code here.
    // ...
}

Maven 能够为每个配置文件设置环境变量

于 2012-10-31T12:52:54.537 回答