2016-08-01 9 views
1

У меня есть приложение, в котором я использую два URL-адреса, сопоставленных с одним сервлетом диспетчера.Как два 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 имеет компонентные сканеры. Я хочу, чтобы я мог разрешить URL-адрес с шаблоном /abc/*, чтобы иметь возможность доступа только к определенному пакету, а не ко всем пакетам, которые сканирует сервлет диспетчера.

PS: Я не могу изменить существующее url-mapping или создать новый сервлет диспетчера.

+0

Если вы, пожалуйста, ответьте на него, пожалуйста, примите его –

ответ

1

Этого не может быть из-за того, что проверка компонента выполняется, поскольку весна инициализирует сервлет диспетчера, и ваш запрос на URL-адрес поступает после инициализации. Таким образом, сканирование пакета к весне происходит до запроса. Так что вы не можете поставить условие на сканирование компонентов.

Если и URL не работать вместе (средства в одно время только один URL активны по запросу) .Затем можно увидеть использование

  1. @Conditional аннотацию

  2. @Profile аннотаций

+0

Спасибо за ответ Ashwani. Я попытаюсь использовать эти аннотации. Я думаю, что нет другого способа, чем запрос фильтрации на уровне контроллера. – akash

+0

Да, для фильтрации запроса до уровня контроллера вы можете пойти на Spring Security. Если я правильно догадываюсь, что вам нужно –