Java 在所有webapp项目中使用的Master web.xml

Java 在所有webapp项目中使用的Master web.xml,java,eclipse,maven,web.xml,Java,Eclipse,Maven,Web.xml,我正在使用Java1.7在EclipseMars2中开发多个web应用程序。我使用Maven构建文件,并使用jboss(WildFly)插件测试它们。他们每个人都使用一个web.xml并共享90%的逻辑。它们都使用spring,它们都使用相同的会话配置、相同的过滤器等。区别在于授权检查和安全角色 最近我不得不做一些更新,单独更新所有web.xml是一种负担。我正在寻找一种解决方案来定义一个包含所有公共逻辑的“web.xml”父文件或主文件,然后注入特定的小部分。我有什么选择?我会尽可能多地从we

我正在使用Java1.7在EclipseMars2中开发多个web应用程序。我使用Maven构建文件,并使用jboss(WildFly)插件测试它们。他们每个人都使用一个web.xml并共享90%的逻辑。它们都使用spring,它们都使用相同的会话配置、相同的过滤器等。区别在于授权检查和安全角色


最近我不得不做一些更新,单独更新所有web.xml是一种负担。我正在寻找一种解决方案来定义一个包含所有公共逻辑的“web.xml”父文件或主文件,然后注入特定的小部分。我有什么选择?

我会尽可能多地从web.xml迁移到类的注释中。例如,在过滤器上,可以执行以下操作:

import javax.servlet.Filter;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;

@WebFilter(filterName = "TimeOfDayFilter",
urlPatterns = {"/*"},
initParams = {
    @WebInitParam(name = "mood", value = "awake")})
public class TimeOfDayFilter implements Filter {
(摘自)

通过这种方式,您将web.xml中完成的大部分传统配置转移到了Java类中。同样的事情也可以用servlet来完成


请注意,这并不总是正确的答案。例如,在过滤器中,如果您使用的是web.xml,则只能对其排序(即拥有一系列过滤器)。但是离开web.xml越多越好。

关于过滤器顺序:你是说所有过滤器都会执行,但是顺序是随机的/由servlet容器决定的吗?还是说只有一个过滤器会运行?如果是后者,是哪一个?顺序是不确定的-在web.xml中,过滤器按照声明的顺序运行。对于注释,它是随机的。