前言
本文是将项目打成war包部署在tomcat服务器中
启动类继承SpringBootServletInitializer
@SpringBootApplication
public class TestApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
/**
* ~为何要继承SpringBootServletInitializer,实现configure方法?
* 正常springboot项目在创建时会生成启动类, 这个类启动的是内置的tomcat,
* 有时候也需要外部的容器,这时候就需要一个web.xml文件.
* 而这个文件是在spring+springMVC中,springboot中没有这个文件,考虑功能上不能丢弃,
* 所以继承SpringBootServletInitializer这个类来替代web.xml的功能,进而使用外部的tomcat(web容器启动项目),
* 自己可以设置端口号,项目名,继承之后要实现他的configure方法
* @param builder
* @return
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(TestApplication.class);
}
}
配置application.yml文件
context-path:配置访问前缀
此处配置的前缀应该与Tomcat-webapps
目录下war包解压的名字对应。
server:
port: 8099
tomcat:
context-path: /test
部署案例
将war包部署在Tomcat容器中的webapps
目录下:
启动Tomcat时会自动解压war包,包名应与上文application.yml配置文件中配置的前缀对应
。
如果,没有配置访问前缀的话,会导致404
问题。
访问
浏览器访问地址:127.0.0.1:8080/test/