启动类配置
继承SpringBootServletInitializer
@SpringBootApplicationpublic class TestApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(TestApplication.class); }}
打包形式配置
<packaging>war</packaging>
移除内置Tomcat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
WebSocket谬误
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
Bean按需加载
@Configurationpublic class WebSocketConfig { @Bean @ConditionalOnProperty(name = "system.package", havingValue = "jar", matchIfMissing = true) public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); }}
Tomcat设置
Host节点减少Context能够间接通过ip+端口形式拜访,须要将appBase革除,避免启动两次利用
<Host name="localhost" appBase="" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="webapps/test" reloadable="false"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /></Host>
注意事项
对于框架封装援用jar包,须要留神工程项目中只能有一个类继承自SpringBootServletInitializer,否则会导致ApplicationContext初始化两次