Spring Boot 热部署及内置tomcat相关
不使用spring boot提供的内置tomcat
有时候项目部署的时候不想打成jar包,而是war包使用外部中间件如tomcat等,那么打包的时候就要排除spring boot 内置的tomcat,如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
1. 这样排除之后,可能会有一些问题,因为可能tomcat中还有其其他的依赖也跟着tomcat被排除了。
2. 而且开发的时候使用内置tomcat启动方便很多,所以需要再引入需要的依赖。但设置scope
为provided
,表示编译、测试、运行时使用jar包,但是打包的时候会被排除掉。如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
使用devtools实现热部署
- 经试验,开发的时候要实现热部署,必须使用spring boot方式或main方法启动,用maven 的run方法无效。
- 经试验,开发的时候要实现热部署必须使用spring boot的tomcat,这也是上一节又加上tomcat依赖的另一个原因。
<!-- spring boot 热部署热修改插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>provided</scope>
</dependency>
optional
为true
表示什么意思呢?
明天补充: