如何在运行时动态创建,注册和映射servlet

时间:2016-11-14 11:14:25

标签: java servlets dynamic proxy reverse-proxy

我有一个小的spring boot java应用程序项目,使用Servlet实现Proxy方法,它包含一个项目的maven依赖项,它为我提供了一个UtilityServlet,我在项目的TestServlet中扩展并使用@注册servlet映射。 Bean和@Configuration注释。我的应用程序可以正常使用这种方法,但我有新的用例。

我正在尝试模块化/参数化应用程序配置。

我想要的是能够在应用程序启动期间根据作为参数传递给应用程序所需映射的URL模式的数量,在运行时创建,注册和映射servlet。例如,

servletUrl.properties 包含以下3个网址映射:

  

servlet.url1 = / servlet1 / *
  target.url1 = / Target1时/
  servlet.url2 = / servlet2 / *
  target.url2 = / TARGET2 /
  servlet.url3 = / servlet3 / *
  target.url3 = / target3 /

基于上面的映射,我希望在应用程序启动时,应用程序识别属性文件中的3个url映射,并创建和注册3个不同的servlet,扩展UtilityServlet,每个映射一个。

有没有办法完成这样的事情,Spring解决方案将是首选,但不一定是交易破坏者。在此先感谢你们

1 个答案:

答案 0 :(得分:0)

让您的单个Servlet实现调用路由类。

路由器读取配置文件并根据其内容设置不同的处理程序类。

当来自Servlet的调用时,它们会在calling-url上路由到正确的处理程序类。

例如,您的基本servlet可以具有' api'的基本URL映射。 当来电时说'api / target1?param = etc'你只需路由' target1'到正确的处理程序。