我从Spring Tool Suite内部将项目重构为Spring Boot应用程序。所有文档都显示了如何使用嵌入式Tomcat实例创建一个自包含的应用程序,该实例有效且出色。
但是在此之前,我有自己的Maven Web-MVC项目,该项目具有针对Spring的基于XML的配置。我可以将其直接部署到TC Server,效果很好。我最喜欢的是:热插拔!我可以添加新的函数和类,它们立即由TC Server接收,而无需任何其他配置。
但是,我发现使用Spring Boot和嵌入式Tomcat并非如此。热插拔功能非常有限,许多基本更改都需要重新启动。从我一直在阅读的内容来看,TC Server是Tomcat的更复杂的版本,因此这引出了我的两个问题:
1)如何通过STS在TC Server上运行我的Maven Spring Boot应用程序?启动新的Pivotal TC运行配置对我不起作用。
2)当前者看起来更好用时,为什么Spring Boot文档示例不强调在嵌入式Tomcat上使用TC Server?
您可以将Spring Boot应用程序部署到tc Server,就像将其部署到任何其他独立servlet容器一样。您需要进行三项更改:
SpringBootServletInitializer
@Configuration @EnableAutoConfiguration @ComponentScan public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } }
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- ... --> <packaging>war</packaging> <!-- ... --> </project>
spring-boot-starter-tomcat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
我不知道Tomcat和tc Server的类重载功能之间的任何区别。也许您在tc Server实例中配置了Spring Load?如果是这样,您也可以在Spring Boot中使用它。