1 概述
1 概述
SpringBoot常用的热部署方式有两种,spring-loaded和devtools。本章节主要记录devtools的使用方式,因为spring-loaded有以下两个缺点:
第一, 只能实现java代码的热部署,对页面模板文件无法部署;
第二, 开发过程比较麻烦,启动服务需要使用命令,关闭服务需要手动去关闭后台线程。
2 项目结构
2.1 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>2.1.3.RELEASE</version>
</parent>
<groupId>com.liulg</groupId>
<artifactId>11-spring-boot-hotdeploy-devtools </artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.7</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
2.2 Controller
package com.liulg.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MyController {
@RequestMapping("index")
public String index(){
System.out.println("controller....init...abc");
return "index";
}
}
2.3 启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.4 页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<span th:text="'my controller test abc'"></span>
</body>
</html>
2.5 演示结果
正常启动服务后,访问index请求
控制台
浏览器
直接修改controller及页面文件,在字符串后面添加abc,然后保存,观察控制台输出信息,会看到服务自动重启了。再次通过浏览器请求服务,会看到以下输出:
控制台
浏览器