SprigBoot 的两种部署方式
热部署:SpringLoader 插件
重新部署: DevTools 工具
热部署不会重新部署项目。
一、SpringLoader 插件的使用
建立项目,配置 pom.xml 文件
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<groupId>com.bjsxt</groupId>
<artifactId>20-spring-boot-springloader</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.7</java.version>
<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.versi on>
</properties>
<dependencies>
<!-- springBoot 的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- thymeleaf 的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
</project>
使用方式一:以 maven 插件方式使用 SpringLoader
在 pom 文件中添加插件配置
<!-- springloader 插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.5.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
使用 maven 的命令起来启动
spring-boot:run
**注意:**这种方式的缺点是 Springloader 热部署程序是在系统后台以进程的形式来运行。需要打开任务管理器手动关闭该进程。
使用方式二:在项目中直接使用 jar 包的方式
添加 springloader 的 jar 包
启动方式:
右键选择 run configrations
VM arguments:输入启动命令,run
启动命令:
-javaagent:.\lib\springloaded-1.2.5.RELEASE.jar -noverify
SpringLoader 缺陷:
只对Java 代码做部署更新处理(后台),但是对页面(前端)无能为力。也就是说改变前后端代码后,SpringLoader 更新后端代码,控制台输出发生变化,前台页面没有变化。
二、DevTools 工具的使用
SpringLoader 与 DevTools 的区别:
SpringLoader:SpringLoader 在部署项目时使用的是热部署的方式。只针对后端内容进行更新。
DevTools:DevTools 在部署项目时使用的是重新部署的方式。前后端都会进行更新。
当修改了后端代码时,项目会进行重新部署
当只修改了前端代码时,项目不会进行重新部署,但是在重新请求页面时会将改变的内容重新加到服务里面(比如:tomcat),已达到更新的效果。
DevTools 工具的使用:
修改项目的 pom.xml 文件,添加 devtools 的依赖。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<groupId>com.bjsxt</groupId>
<artifactId>21-spring-boot-devtools</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.7</java.version>
<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version>
</properties>
<dependencies>
<!-- springBoot 的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- thymeleaf 的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- DevTools 的坐标 *****-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<!--optional为 true:表示当其他项目继承此项目时,此依赖不会向下传递 -->
</dependency>
</dependencies>
</project>
添加依赖后只需要正常启动即可。