向我的 servlet 容器 添加越来越多的配置(在我的例子中是嵌入式 Jetty),我开始怀疑是否应该将所有内容都放入到 web.xml 中或将配置程序化保留在 Java 代码中。
是否有理由选择 web.xml 而不是编程方法,反之亦然?是否存在安全原因或者这只是装饰性的?
对我来说,web.xml 似乎更好,因为您专用 DSL 来完成这项工作,而不是将所有内容都压入代码中。另一方面,当我在代码中时,我可以快速查找配置。
最佳答案
这取决于您想要配置的内容以及您的方便性。
Servlet 3.0 允许您以三种不同的方式定义元数据:
web.xml,通常在不同环境部署时会发生变化的配置应该在这里配置。这些属性包括数据库属性、属性文件、管理员用户属性等。
在web.xml中定义的优点是,所有的配置都集中在一个地方,便于文档等。仅在一处定义,分布式开发时维护起来比较困难。是的,Servlet 3.0 再次允许 web-fragments.xml,您应该为其定义库,每个库可以再次具有单个描述符。
注释,任何可以在开发期间定义但也可以在部署期间覆盖的内容都定义为注释。
优点是不需要在部署描述符中配置,除非必须覆盖它。注释可以给出默认值。 缺点是容器必须处理注解的所有类。我不认为这是一个很大的缺点。
以编程方式,任何您知道不会更改的内容都可以以编程方式进行配置。优点是开发人员可以确保配置不会被任何人随时更改。
关于java - web.xml 与编程方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11193763/