2

我有许多 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 可配置的最佳方法是什么?我该怎么做呢?

谢谢!

4

0 回答 0