如何将具有单个调度程序 servlet 和 servlet 配置的两个 url 映射到不同的包,并且一个包应该只允许两个中的一个 URL?

How can two urls with single dispatcher servlet and servlet config be mapped to different packages and a package should allow only one URL out of two?

我有一个应用程序,我在其中使用映射到单个 Dispatcher servlet 的两个 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>

Spring-servlet.xml 有组件扫描仪。我想要一些方法,以便我可以允许 url 模式 /abc/* 只能访问特定的包,而不是调度程序 servlet 正在扫描的所有包。

PS:我无法更改现有的 url-映射或创建新的调度程序 servlet。

这不可能发生,因为组件扫描是 运行,因为 spring 初始化调度程序 servlet 并且您对 url 的请求是在 intialization.So 之后spring 对包的扫描发生在 request.So 之前,您不能将条件放在组件扫描上。

如果两个url不一起工作(意思是一次只有一个url激活请求)。那么可以看到

的使用
  1. @条件注解

  2. @配置文件注释