2016-08-01 2 views
1

단일 Dispatcher 서블릿에 매핑 된 두 개의 URL을 사용하는 애플리케이션이 있습니다.단일 디스패처 서블릿 및 서블릿 구성을 사용하는 두 개의 URL을 서로 다른 패키지에 매핑하는 방법과 패키지에서 둘 중 하나만 허용 할 수 있습니까?

<servlet> 
     <servlet-name>Default Webservice</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value> 
       /WEB-INF/spring-servlet.xml 
      </param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Default Webservice</servlet-name> 
     <url-pattern>/abc/*</url-pattern> 
     <url-pattern>/xyz/*</url-pattern> 
    </servlet-mapping> 

봄-servlet.xml 파일 구성 요소 스캐너가 있습니다. 어떤 방법으로도 패턴이 /abc/* 인 URL을 발송자 서블릿이 스캔하는 모든 패키지가 아닌 특정 패키지에만 액세스 할 수 있도록 허용 할 수 있습니다.

추신 : 기존 URL 매핑을 변경하거나 새로운 발송자 서블릿을 만들 수 없습니다.

+0

답변을 만족하면 받아주세요. –

답변

1

구성 요소 검색이 스프링으로 실행되고 디스패처 서블릿이 초기화되고 URL 요청이 초기화 된 후에 발생하기 때문에 이런 일은 일어나지 않습니다. 봄까지 패키지 검색이 요청 전에 발생합니다. 컴퍼넌트의 스캔 조건

모두 URL이 함께 작동하지 않을 경우 (단 하나 개의 URL이 요청에 대한 활성 한 번에 수단) 그 때는이

  1. @Conditional 주석

  2. @profile 주석의 사용을 볼 수 있습니다

+0

답변 주셔서 감사합니다. 이 주석을 사용해 보겠습니다. 나는 컨트롤러 수준에서 요청을 필터링하는 것 외에 다른 방법이 없다고 생각합니다. – akash

+0

예, 컨트롤러 레벨 이전에 요청을 필터링하기 위해 Spring Security에 갈 수 있습니다. 내가 올바르게 추측하면 –