Enabling/disabling a web.xml filter using a Spring profile

前端 未结 1 2005
别跟我提以往
别跟我提以往 2020-12-10 20:59

I have a Spring application that can use two different persistence API:

  • Spring Data JPA
  • Spring Data Neo4j

When using Spring Data JPA, I

1条回答
  •  臣服心动
    2020-12-10 21:43

    Ok, I sorted this out. My new "web.xml" uses DelegatingFilterProxy instead of org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter:

    
        toggleOpenEntityManagerInViewFilter
        org.springframework.web.filter.DelegatingFilterProxy
    
    
        toggleOpenEntityManagerInViewFilter
        /*
    
    

    Then in my ApplicationContext, I create a bean named "toggleOpenEntityManagerInViewFilter" (which is the filter-name value). The trick is to instanciate a different class depending on the Spring profile:

    
        
    
    
        
    
    

    The my.project.dal.utils.spring.DoNothingFilter is defined as:

    public class DoNothingFilter implements Filter {
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            filterChain.doFilter(servletRequest, servletResponse);
        }
    
        @Override
        public void destroy() {
        }
    }
    

    This seems to work.

    0 讨论(0)
提交回复
热议问题