一.热部署

在开发中我们修改一个Java文件后想看到效果不得不重启应用,这导致大量时间花费,我们不希望重启应用的情况下,程序可以自动部署(热部署)。

1.1 模板引擎

在SpringBoot中开发情况下禁用模板引擎的cache,页面模板改变ctrl+F9可以重新编译当前页面并生效。

1.2 Spring Loaded

Spring官方提供的热部署程序,实现修改类文件的热部署,需要下载Spring Loaded(项目地址),使用时需要添加运行时参数:-javaagent:C:/springloaded-1.2.5.RELEASE.jar-noverify

1.3  JRebel

收费的一个热部署软件,安装插件使用。

1.4  Spring Boot Devtools(推荐)

引入依赖,使用IDEA的编译或者ctrl+f9,如果用eclipse使用保存即ctrl+s即可实现热部署。

  <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

.监控管理

通过引入spring-boot-starter-actuator,可以使用Spring Boot为我们提供的准生产环境下的应用监控和管理功能。我们可以通过HTTP、JMX,SSH协议来进行操作,自动得到审计、健康及指标信息等。

由于SpringBoot2.x版本在这一块有所变动所以需要将SpringBoot版本切换为1.5.x版本,防止版本问题影响。

2.1 引入spring-boot-starter-actuator

 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.2 通过http方式访问监控端点

监控和管理端点:

2.3 可进行shutdown(POST提交,此端点默认关闭)

可以通过发送"/shutdown"post请求来关闭应用。

2.3.1 开启shutdown关闭应用

endpoints.shutdown.enabled=true

2.3.2 使用postman发送post请求

2.4 定制端点信息

定制端点一般通过endpoints+端点名+属性名来设置。

修改端点id(endpoints.beans.id=mybeans),这样设置以后访问beans端点就需要访问"/mybeans"了

修改端点访问路径(endpoints.beans.path=beans)

开启远程应用关闭功能(endpoints.shutdown.enabled=true)

开启关闭端点(endpoints.beans.enabled=false)

关闭所有端点访问(endpoints.enabled=false)

修改根路径方法(management.context-path=/manage)

修改访问端点的端口(management.port=8181)

2.5 自定义HealthIndicator

访问/health端口,可以看到应用监控的监控状况。例如redis连接是否正常,如果连接地址不正确导致连接不上redis地址,健康状态就会显示down。那么如何自定义一个健康状态指示器呢?

首先,编写一个指示器 实现HealthIndicator接口,并且指示器的名字需要命名为xxxHealthIndicator并加入容器中。

@Component
public class MyHealthIndicator implements HealthIndicator {
@Override
public Health health() {
//自定义检查方法
// return Health.up().build();
return Health.down().withDetail("msg","服务异常").build();
}
}

全部编写好后,重启项目访问"/health"就可以查看该指示器了。

SpringBoot高级篇Ⅸ --- 热部署与监控管理的更多相关文章

  1. SpringBoot入门篇--热部署

    在项目的开发过程中我们难免会涉及到对代码的修改,有bug我们也需要对代码进行修改,这时候我们就需要重启服务器.但是,我们知道的是这个过程是相当的痛苦的,重启服务器涉及到了所有资源的重新加载,过程那是相 ...

  2. (40). springboot + devtools(热部署)【从零开始学Spring Boot】

    我们之前在在()Spring Boot热部署[从零开始学Spring Boot] (http://412887952-qq-com.iteye.com/blog/2291518 )讲过通过使用spri ...

  3. 【SpringBoot1.x】SpringBoot1.x 开发热部署和监控管理

    SpringBoot1.x 开发热部署和监控管理 热部署 在开发中我们修改一个 Java 文件后想看到效果不得不重启应用,这导致大量时间花费,我们希望不重启应用的情况下,程序可以自动部署(热部署). ...

  4. SpringBoot项目设置热部署

    记录一个SpringBoot 设置热部署(修改项目之后,项目自动重启)实例 POM.XML 文件 <!-- 配置springBoot项目的热部署启动 --> <dependency& ...

  5. 玩转 Springboot 2 之热部署(DevTools)

    Devtools 介绍 SpringBoot 提供了热部署的功能,那啥是热部署累?SpringBoot官方是这样说的:只要类路径上的文件发生更改,就会自动重新启动应用程序.在IDE中工作时,这可能是一 ...

  6. springboot热部署与监控

    一.热部署 添加依赖+Ctrl+F9 <dependency> <groupId>org.springframework.boot</groupId> <ar ...

  7. 基于Maven的SpringBoot项目实现热部署的两种方式

    转载:http://blog.csdn.net/tengxing007/article/details/72675168 前言 JRebel是JavaEE中比较流行的热部署插件,可快速实现热部署,节省 ...

  8. springboot之DevTools热部署的简单原理解析

    IDEA新建springboot选择DevTools springboot-devtools模块能够实现热部署,添加类.添加方法,修改配置文件,修改页面等,都能实现热部署. 原理就是重启项目,但比手动 ...

  9. springboot + devtools(热部署)

    技术介绍 devtools:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类文件.属性文件.页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现 ...

随机推荐

  1. java_回文检测

    package bao; import java.util.Scanner; public class Work { public static boolean digui(String str1,i ...

  2. SpringBoot源码学习系列之启动原理简介

    本博客通过debug方式简单跟一下Springboot application启动的源码,Springboot的启动源码是比较复杂的,本博客只是简单梳理一下源码,浅析其原理 为了方便跟源码,先找个Ap ...

  3. docker-网络驱动

    网络驱动程序 Docker的网络子系统是可插拔的,使用驱动程序.默认情况下存在多个驱动程序,并提供核心网络功能: bridge:默认网络驱动程序.如果未指定驱动程序,则这是要创建的网络类型.当的应用程 ...

  4. asp.net core 3.x 通用主机是如何承载asp.net core的-上

    一.前言 上一篇<asp.net core 3.x 通用主机原理及使用>扯了下3.x中的通用主机,刚好有哥们写了篇<.NET Core 3.1和WorkerServices构建Win ...

  5. Spring中常见的设计模式——适配器模式

    一.适配器模式的应用场景 适配器模式(Adapter Pattern)是指将一个类的接口转换成用户期待的另一个接口,使原本接口不兼容的类可以一起工作,属于构造设计模式. 适配器适用于以下几种业务场景: ...

  6. 序言vue.js介绍

    vue.js :渐进式JavaScript框架 vue.js 优点 1.体积小 例如:压缩后 33k; 2.更高的运行效率 基于虚拟dom,一种可以预先通过JavaScript进行各种计算,把最终的D ...

  7. qiniuLive 连麦流程介绍

    本文出自APICloud官方论坛 qiniuLive 封装了七牛直播云服务平台的移动端开放 SDK.该模块包括视频流采集和视频流播放两部分 iOS连麦流程图: Android连麦流程图: 以下部分代码 ...

  8. Unity_Dungeonize 随机生成迷宫

    本文对随机生成迷宫的实现思路进行记录,其作用在于为游戏过程提供随机性以及节省开发周期,下面是Dungeonize的结构 随机迷宫的生成主要包括几个阶段 1.生成房间体结构,为墙体,自定义房间,自定义物 ...

  9. Java 几道常见String面试题

    String s1="abc"; String s2="abc"; System.out.println(s1==s2); System.out.println ...

  10. VirtualBox扩充磁盘&清空安装包

    1.virtual box 扩充磁盘空间 D:\VirtualBox\VBoxManage.exe modifyhd "E:\virtual box\daisyyun\daisyyun.vd ...