스프링 XML 구성에서 사용할 사용자 정의 네임 스페이스를 생성 중입니다. 이미 NamespaceHandler
과 BeanDefinitionParser
을 구현했습니다. 이제 스프링 구성에 <myns:some-awesome-feature />
을 넣을 수 있으며 필요한 빈을 자동으로 생성합니다.BeanDefinitionParser에서 스프링 필터를 등록하십시오.
정상적인 스프링 빈을 만드는 것 외에도,이 주석 레지스터를 사용하여 코드를 활용할 수있는 요청에 대한 정보를 추출하려면 OncePerRequestFilter
을 갖고 싶습니다. 사용자 지정 XML 태그를 구현할 때 사용할 수있는 두 클래스를 사용하여 프로그래밍 방식으로 필터를 등록하는 방법이 있습니까?
나는 "당신이 정말로 그것을 할 수 없다"는 대답이 두렵다. 'DelegatingFilterProxy'를 사용하면 내가하고 싶은 일의 목적을 상실 할 수 있습니다. 나는 여러 응용 프로그램에서 사용할 수있는 라이브러리를 작성 중입니다. 그래서 커스텀 스프링 태그가 필터를 등록하는 것을 포함하여 필요한 모든 설정을 할 수 있기를 바랬습니다. – Michael
'javax.servlet.ServletContext'에는 필터를 추가 할 수있는 몇 가지 메소드가 있지만 실제로는 호출하지 않을 것입니다. – Michael
그 목적으로'javax.servlet.ServletContext'를 사용할 수 없습니다. 'ServletContext :: addFilter'는 초기화 중에 만 사용할 수 있으므로 라이브러리 코드가 실제로 시작되기 직전입니다. 스프링 보안은 다른 방법이 없기 때문에'DelegatingFilterProxy'에 있습니다. 물론 서블릿 3.0 컨테이너에서 @ WebFilter를 사용할 수 있습니다. 그러나 서블릿 2.x 스펙을 더 이상 지원할 수 없으며 의존성 삽입을 잃어 버리고 특정 필터 순서를 요구할 때 다시'web.xml '에 의존해야합니다. –