如何将具有单个调度程序 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激活请求)。那么可以看到
的使用
@条件注解
@配置文件注释
我有一个应用程序,我在其中使用映射到单个 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激活请求)。那么可以看到
的使用@条件注解
@配置文件注释