2012-10-31 42 views
1

我有在web.xml中有以下一个Spring MVC Web应用程序:的Java EE条件过滤器映射

<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属性是否已启用或禁用,具体取决于活动的构建配置文件?

回答

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 is able to set environment variables per profile