Spring Boot的启动机制是从Main函数启动。
@SpringBootApplication(exclude = {JacksonAutoConfiguration.class}) @ServletComponentScan public class Application {
public static void main(String[] args) throws IOException { Application.context = SpringApplication.run(QmcpApplication.class, args);}
}
但当改为War包部署发现,Main函数不执行。
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); }}
在ServletInitializer中指定Application.class都不行,只会执行Run方法
@Override protected WebApplicationContext run(SpringApplication application) { Application.context = super.run(application); //启动代码要由 main 函数 迁移到此。 return (WebApplicationContext) Application.context; }并发现在添加websocker的引用后,Build的war包有不能正常启动的现像。