我们希望将Tomcat作为嵌入式Web服务器添加到现有的Spring应用程序中。
我们的应用程序不是使用Spring Boot构建的,但我们希望使用Boot配置来添加Tomcat,因为它可能会使该过程变得更加简单。
这是否可以使用Spring Boot,因为我们目前没有使用Boot?
在任何情况下,改造或重新构建现有应用程序以使用Spring Boot有多困难或可行?
由于
答案 0 :(得分:1)
在现有的Spring应用程序中引入Spring Boot是非常可行的,但可能取决于您的Spring版本。
我申请了几次的成功方法是。
如果您有不同的依赖项,那么在直接升级到Spring Boot时,Spring Boot可能会突然出现更新的,不兼容的依赖项。我倾向于做的是,一次升级依赖项1并确保应用程序仍然有效。 (有关版本,请参阅此pom.xml
。)
您可以立即升级所有内容,但是您可能会遇到问题,然后很难找出导致问题的原因。
升级依赖项之后,您可能希望清除依赖项并使用spring-boot-starter-*
项目来管理依赖项。这样他们就会遵循Spring Boot版本控制方案,并确定您拥有正确的版本。
使用pom.xml
时,您可能还希望将Spring Boot parent用作父项目。
现在您可能希望使用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自动配置。再次以小的迭代/步骤执行此操作。我倾向于通过bean来做bean(首先是DataSource
,然后是EntityManagerFactory
等等),这样你逐渐开始使用Spring Boot的越来越多的功能。