SpringBoot热部署

SpringBoot热部署

(SpringBoot高级)

SprigBoot的热部署方式分为两种

               SpringLoader插件

                DevTools工具

一、         SpringLoader插件的使用

 

1         创建项目

2         修改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>

3         创建Controller

/**

 * SpringBoot----SpringLoader

 *

 *

 */

@Controller

publicclass UsersController {

 

    @RequestMapping("/show")

    public String showPage(){

        return"index";

    }

}

4         编写页面

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

    <span th:text="Hello...."></span>

</body>

</html>

5         创建启动类

@SpringBootApplication

publicclass App {

    publicstaticvoid main(String[] args) {

        SpringApplication.run(App.class, args);

    }

}

 

 

6         使用SpringLoader进行项目的热部署

6.1     方式一:以maven插件方式使用SpringLoader

6.1.1        在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>

 

6.1.2        使用maven的命令起来启动

spring-boot:run

SpringLoader缺陷:就是Java代码做部署处理。但是对页面无能为力。

 

6.1.3        注意:这种方式的缺点是Springloader热部署程序是在系统后台以进程的形式来运行。需要手动关闭该进程



7         方式二:在项目中直接使用jar包的方式

7.1     添加springloader的jar包

7.2     启动方式

启动命令:

-javaagent:.\lib\springloaded-1.2.5.RELEASE.jar-noverify

 

 

二、         DevTools工具

1         SpringLoader与DevTools的区别:

SpringLoader:SpringLoader在部署项目时使用的是热部署的方式。

DevTools:DevTools在部署项目时使用的是重新部署的方式

 

2         修改项目的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>

 

 

阅读更多
个人分类: 框架
上一篇Spring Boot异常处理与单元测试
下一篇Spring Boot定时任务
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭