春季启动战争部署



如何在Spring 2.1.4引导应用程序(打包为WAR(中控制我是创建Servlet 3.1还是4.0 Web应用程序。 通常,当使用 web.xml Web 应用程序描述符时,Web 应用程序上的属性会宣布正在使用的规范的版本。 在没有web.xml的Spring WebApplicationInitializer应用程序中(这是我的情况(,没有这样的广告。

是否只是仅使用 servlet 3.1 功能并将它们部署到容器并希望它能工作?

web.xml文件是可选的,因为 Servlet 3 和 Java EE 6 引入了诸如 @WebServlet@WebFilter@WebListener 等注释。

但是,无法使用WebApplicationInitializerweb.xml之外声明此信息,因此无论如何都必须包含该文件并指定版本。

在发布这个问题一年多后,我发现 maven 通过声明为依赖项的特定 API 的存在来做出这样的决定。例如,如果你的Pom文件中有javax.servlet:javax.servlet-api:4.0.1依赖关系,maven将假定一个servlet 4.0容器。我相信 Spring 启动不支持这一点,但我认为它应该。作为旁注,M2eclipse插件也可以通过这种方式工作

最新更新