发布:2022/3/14 16:32:10作者:管理员 来源:本站 浏览次数:1389
java中SpringBoot项目是支持内置tomcat和自定义tomcat使用,而且不管使用哪种方式,在本地调试的时候都可以按照内置方式启动,这样带来了方便,但是有时候也会带来坑,某些值得设置最好不要写在启动类的main方法,比如上下文获取
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Demo3Application { public static void main(String[] args) {
SpringApplication.run(Demo3Application.class, args); }
}
发布项目后,运行效果如下图所示:
经无数次查阅相关资料,最终原因很简单,就是项目启动程序不兼容引起的问题。
解决方案:
修改项目程序启动文件,这种方式只适用内置tomcat,并不适用自定义tomcat;所以最好适用注解方式自动注入,这样就都兼容了(注意:注解不适用static方法)
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class Demo3Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Demo3Application.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Demo3Application.class); } }重新运行项目或发布,效果如下:
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4