gpt4 book ai didi

spring - 如何从传统的 Java Web 应用程序(使用 web.xml)迁移到 Spring Boot?

转载 作者:行者123 更新时间:2023-12-04 10:25:30 29 4
gpt4 key购买 nike

我想将我的项目切换到基于 spring 的产品。

我的第一步是将我的 java web 应用程序从生成的 WAR 文件转换为由 spring boot 提供支持的独立可执行 jar。

Let's take a open source web application example from github.: Vaadin-Spring Web Application

The web.xml file can be found here.

The root-context file can be found here.

我希望有一些指导可以帮助我进行转换。

I have also submit an issue in the spring-boot project.

最佳答案

据我所知,这个应用程序不是 Spring MVC 应用程序——如果是的话,它可能会更容易迁移。目标(根据 github 问题)是获得一个可执行的 JAR。不过,基本计划可能是首先使用 Spring Boot 迁移到 WAR,然后在运行后迁移到 JAR。这是一个非常简单的应用程序,所以我们真正需要做的就是查看 web.xml并将其翻译成相关的 Spring Boot 特性。以下是一些通用指南:

通过扩展 SpringBootServletInitializer 创建可部署的 WAR (例如,在名为 Application 的类中),并添加 Spring Boot @EnableAutoConfiguration注解。例子:

    @Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}

然后添加一些配置:
  • 一个 @Bean类型 ServletServletRegistrationBean将该 bean 安装在容器中,就像它是 <servlet/><servlet-mapping/>web.xml
  • 一个 @Bean类型 FilterFilterRegistrationBean行为类似(如 <filter/><filter-mapping/> )。
  • ApplicationContext在这种情况下,根植于一个 XML 文件中,所以最简单的第一步是 @Import那个成春Application .这个非常简单,只需几行即可重新创建为 @Bean定义。
  • 静态资源可移至/public (或 /static/resources/META-INFO/resources )在类路径根


  • 一旦 WAR 工作,我们通过添加 main 使其可执行我们的方法 Application ,例如
    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }

    另见 Getting Started Guide on Converting a JAR to a WAR .

    正如我所说,这个特定应用程序的最大问题是它不是 Spring MVC 应用程序。正如爱尔兰人可能会说“如果我想到达那里,先生,我不会从这里开始。”一般来说,这是一个有趣的问题,但我建议其他任何希望将 Spring 应用程序迁移到 Spring Boot 的人阅读这里的一般建议,但也许可以在其他地方开始另一次讨论。

    无论如何,我将在转换这个特定的应用程序(源代码 jars 会很好)时有一个 bash,如果我学到任何新东西,请更新此响应。

    关于spring - 如何从传统的 Java Web 应用程序(使用 web.xml)迁移到 Spring Boot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20240939/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com