我有许多Servlet模块,我希望能够基于某些外部属性启用/禁用。我正在使用Servlet 3.0,目前所有的servlet都是在web.xml中设置的。
我知道我可以在Servlet 3.0中以编程方式添加过滤器/ servlet,但是我想知道什么是最好的选择以及我应该如何根据一些.properties文件来做这件事。
我可以从web.xml中删除所有servlet并动态添加它们,但是我不确定这是否仍然有效,因为当前基数是使用Spring的一半而不是一半(理想情况下我想移动)一切都进入MVC并且可能使用Spring配置文件,但这有一段时间了。代码正在更新,它有点遗留,所以一些servlet由Spring连接,所以我们至少可以在整个应用程序中运行DI。
如果我去编程路由,我想确保如果我以编程方式添加一个servlet,它仍然会调用init(ServletConfig cfg)
方法仍然被调用(所以我可以通过调用为servlet做Spring的依赖关系连接SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext()
)。有很多servlet,因此在Java监听器类中执行它可能相当密集。
我认为更好的方法是创建一个创建过滤器的类(在运行时基于某些属性文件的内容添加)来简单地使servlet无法访问..但是我不知道这是怎么回事方法会奏效。
简而言之,我想让我的应用程序中的模块可配置。所以我的问题是什么是使servlet可配置的最佳方法?我该怎么做呢?
谢谢!