虽然一般微服务都是把spring boot项目打成jar直接启动,但是war包作为经典的项目启动方式,是有必要掌握的。
完整项目代码已上传github:github.com/neatlife/my…
写作花费了作者大量时间,求赞,求关注 _(:з」∠)_
准备案例项目
可以直接拿现成的spring boot项目进行修改,也可以在https://start.spring.io/创建一个新的案例项目,比如:
如果是在start.spring.io上创建的新项目,需要把web组件加到项目里,这个编写测试接口会用到web组件里的控制器。
然后在idea中打开这个项目,编写两个用来测试的api
@RestController
@RequestMapping("test")
public class MyController {
@RequestMapping("test1")
public String test1() {
return "test1";
}
@RequestMapping("test2")
public String test2() {
return "test2";
}
}
复制代码
将项目打包成war包
修改pom.xml指定打包方式为war包: <packaging>war</packaging>
修改pom.xml修改spring boot内置的tomcat依赖,指定scope为provided
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
复制代码
修改成果如下:
创建一个初始化文件初始化项目比如:MySpringBootServletInitializer.java 核心代码如下
public class MySpringBootServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MywarApplication.class);
}
}
复制代码
执行命令mvn clean install -Dmaven.test.skip=true
将项目打成war包,执行后到target目录查看效果
把项目的war放到tomcat里运行
可以使用docker一键启动tomcat,把项目war所在的target目录挂载到tomcat的webapps目录
docker run --name=tomcat -itd --rm -p 8888:8080 \
-v /Users/suxiaolin/Dropbox/Projects/mywar/target:/usr/local/tomcat/webapps tomcat:8-jre8
复制代码
可以使用docker logs -f tomcat
查看tomcat启动日志