Spring Boot第三章 SpringBoot热部署
(SpringBoot高级)
SprigBoot的热部署方式分为两种
- SpringLoader插件
- DevTools工具
- SpringLoader插件的使用
- 创建项目
- 修改pom文件
<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.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> </dependencies> </project> |
- 创建Controller
/** * SpringBoot----SpringLoader * * */ @Controller public class UsersController {
@RequestMapping("/show") public String showPage(){ return "index"; } } |
- 编写页面
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <span th:text="Hello...."></span> </body> </html> |
- 创建启动类
@SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
|
- 使用SpringLoader进行项目的热部署
- 方式一:以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缺陷:就是Java代码做部署处理。但是对页面无能为力。
- 注意:这种方式的缺点是Springloader热部署程序是在系统后台以进程的形式来运行。需要手动关闭该进程
- 方式二:在项目中直接使用jar包的方式
- 添加springloader的jar包
- 启动方式
启动命令:
-javaagent:.\lib\springloaded-1.2.5.RELEASE.jar -noverify
推荐使用此种方式(1)不会单独启动进程 (2)对前端代码也会你行热部署 (html ,ftl...)
- DevTools工具
- SpringLoader与DevTools的区别:
SpringLoader:SpringLoader在部署项目时使用的是热部署的方式。
DevTools:DevTools在部署项目时使用的是重新部署的方式
- 修改项目的pom文件添加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> </dependency> </dependencies>
</project> |