2012-10-31 3 views
1

난은 web.xml에 다음과 스프링 MVC 웹 응용 프로그램이 : 나는에 개발하고 있어요하지자바 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.