改进Spring应用程序以使用Spring Boot

时间:2017-09-07 13:13:41

标签: spring-boot

我们希望将Tomcat作为嵌入式Web服务器添加到现有的Spring应用程序中。

我们的应用程序不是使用Spring Boot构建的,但我们希望使用Boot配置来添加Tomcat,因为它可能会使该过程变得更加简单。

这是否可以使用Spring Boot,因为我们目前没有使用Boot?

在任何情况下,改造或重新构建现有应用程序以使用Spring Boot有多困难或可行?

由于

1 个答案:

答案 0 :(得分:1)

在现有的Spring应用程序中引入Spring Boot是非常可行的,但可能取决于您的Spring版本。

我申请了几次的成功方法是。

  1. 将依赖项升级到Spring Boot支持的
  2. 让Spring Boot Starter项目管理您的依赖项
  3. 创建Spring Boot启动类
  4. 剥离配置以使用Spring Boot自动配置
  5. 升级依赖项

    如果您有不同的依赖项,那么在直接升级到Spring Boot时,Spring Boot可能会突然出现更新的,不兼容的依赖项。我倾向于做的是,一次升级依赖项1并确保应用程序仍然有效。 (有关版本,请参阅此pom.xml。)

    您可以立即升级所有内容,但是您可能会遇到问题,然后很难找出导致问题的原因。

    让Spring Boot管理依赖项

    升级依赖项之后,您可能希望清除依赖项并使用spring-boot-starter-*项目来管理依赖项。这样他们就会遵循Spring Boot版本控制方案,并确定您拥有正确的版本。

    使用pom.xml时,您可能还希望将Spring Boot parent用作父项目。

    使用Spring Boot引导应用程序

    现在您可能希望使用Spring Boot来引导应用程序并重新使用现有的配置类和/或XML配置文件。可以非常容易地检测现有配置类,并且可以使用@ImportResource包含现有XML配置文件。

    @SpringBootApplication
    @ImportResource("<your-existing-xml-config>")
    public class YourApplication {
    
        public static void main(String[] args) throws Exception {
            SpringApplicationRun(YourApplication.class, args);
        }
    }
    

    专业提示:将此类放在最顶级的可用包中,类似于com.company.your-app,这样以后在Spring Boot上可以检测到您的服务,控制器等而不是您必须手动配置组件扫描等。

    这应该为您提供一个运行且功能正常的应用程序,它仍将使用您自己的配置。

    使用Spring Boot自动配置

    最后一步是删除您自己的配置并使用适当的Spring Boot自动配置。再次以小的迭代/步骤执行此操作。我倾向于通过bean来做bean(首先是DataSource,然后是EntityManagerFactory等等),这样你逐渐开始使用Spring Boot的越来越多的功能。