2016-11-14 55 views
0

我有一个小的spring引导java应用程序项目,用于实现使用Servlet的代理方法,该方法包含对项目的Maven依赖项,该项目为我提供了一个UtilityServlet,我的项目的TestServlet并使用@Bean和@Configuration注释注册servlet映射。我的应用程序使用这种方法工作正常,但我有新的使用案例。如何在运行时动态地创建,注册和映射servlet

我试图能够模块化/参数化应用程序配置。

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

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

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

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

有没有办法做到这样的事情,Spring解决方案将是首选,但不一定是一个交易断路器。在此先感谢球员

回答

0

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

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

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

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