据我所知,这个应用程序不是 Spring MVC 应用程序 - 如果是的话,迁移可能会容易得多。目标(根据 github 问题)是获取可执行 JAR。不过,基本计划可能是首先使用 Spring Boot 迁移到 WAR,然后在运行后迁移到 JAR。这是一个非常简单的应用程序,所以我们真正需要做的就是查看web.xml
并将其转化为相关的 Spring Boot 功能。以下是一些一般指南:
通过扩展创建可部署的 WARSpringBootServletInitializer
(例如,在一个名为Application
),并添加 Spring Boot@EnableAutoConfiguration
注解。例子:
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
然后添加一些配置:
A @Bean
类型的Servlet
or ServletRegistrationBean
将该 bean 安装在容器中,就像它是一个<servlet/>
and <servlet-mapping/>
in web.xml
A @Bean
类型的Filter
or FilterRegistrationBean
行为类似(就像<filter/>
and <filter-mapping/>
).
The ApplicationContext
在本例中,它植根于 XML 文件,因此最简单的第一步是@Import
那进入春天Application
。这个非常简单,只需几行即可重新创建:@Bean
定义。
静态资源可以移动到/public
(or /static
or /resources
or /META-INFO/resources
) 在类路径根目录中
一旦 WAR 运行,我们通过添加一个使其可执行main
方法到我们的Application
, e.g.
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
另请参阅将 JAR 转换为 WAR 的入门指南 http://spring.io/guides/gs/convert-jar-to-war/.
正如我所说,这个特定应用程序的最大问题是它不是 Spring MVC 应用程序。正如爱尔兰人可能会说的那样:“先生,如果我想到达那里,我就不会从这里开始。”一般来说,这是一个有趣的问题,但我建议其他想要将 Spring 应用程序迁移到 Spring Boot 的人阅读此处的一般建议,但也许可以在其他地方开始另一个讨论。
不管怎样,我会在转换这个特定的应用程序时大吃一惊(源代码罐子会很好),如果我学到任何新东西,我会更新这个响应。