Spring Boot 的监视器

此功能用来控制spring boot程序和查看程序信息

依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.0.4.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置

spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver server.tomcat.uri-encoding=UTF-8
# 程序运行端口
server.port=8888
# 监视程序运行端口
management.server.port=8090
# 激活所有的内置Endpoints
management.endpoints.web.exposure.include=*
# 开启shutdown这个endpoint
management.endpoint.shutdown.enabled=true

书写监视控制器

package com.springlearn.learn.Controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @Controller
public class MainController{ @ResponseBody
@RequestMapping("/GetEndPoints")
public String GetAllPoint(HttpServletRequest request){
String path = request.getContextPath();
String host = request.getServerName();
String endPointPath = "/actuator";
StringBuilder sb = new StringBuilder(); sb.append("<h2>Sprig Boot Actuator</h2>");
sb.append("<ul>");
String url = "http://" + host + ":8090" + path + endPointPath;
sb.append("<li><a href='" + url + "'>" + url + "</a></li>");
sb.append("</ul>");
return sb.toString();
}
} // 访问 http://localhost:8888/GetEndPoints

常用的一些内置endpoint

actuator/health         查看程序健康信息

actuator/metrics        查看监视标准

actuator/beans          列出程序中的Spring BEAN 

actuator/env            列出程序运行所有信息

定义actuator/info特殊endpoint

actuator/info可以自定义一些信息

书写如下代码即可访问

package com.springlearn.learn.selfactuator;

import java.util.HashMap;
import java.util.Map; import org.springframework.boot.actuate.info.Info;
import org.springframework.boot.actuate.info.InfoContributor;
import org.springframework.stereotype.Component; @Component
public class BuildInfoActuator implements InfoContributor{ @Override
public void contribute(Info.Builder builder) {
Map<String,String> data= new HashMap<String,String>();
data.put("build.version", "1.0.0");
builder.withDetail("buildInfo", data);
}
}

actuator/shutdown需要post请求才能访问

可以用来关闭程序

定义如下控制器即可

package com.springlearn.learn.Controller;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate; @Controller
public class ShutDownController { @ResponseBody
@RequestMapping(path = "/shutdown")
public String actuatorShutdown(){
String url = "http://localhost:8090/actuator/shutdown";
HttpHeaders headers = new HttpHeaders();
headers.add("Accept", MediaType.APPLICATION_JSON_VALUE);
headers.setContentType(MediaType.APPLICATION_JSON); RestTemplate restTemplate = new RestTemplate();
HttpEntity<String> requestBody = new HttpEntity<>("", headers);
String e = restTemplate.postForObject(url, requestBody, String.class); return "Result: " + e;
}
}

最新文章

  1. return false
  2. Routine
  3. 使用sessionStorage、localStorage存储数组与对象(转)
  4. struts2 using kindeditor upload pictures (including jmagic compressed images)
  5. 学习调用WCF服务的各种方法
  6. BZOJ4282 : 慎二的随机数列
  7. gcc编译器基本命令和vi编辑器2
  8. HTTP 缓存策略
  9. CSS3画腾讯QQ图标 无图片和js参考
  10. 【python之旅】python的基础三
  11. WinFom解决最小化最大化后重绘窗口造成闪烁的问题
  12. Android开发——diglog cancel与dismiss方法区别
  13. 痞子衡嵌入式:ARM Cortex-M文件那些事(8)- 镜像文件(.bin/.hex/.s19)
  14. Ubuntu下matplotlib的中文显示
  15. matlab学习(1)strsplit与strtok
  16. Java利用QRCode.jar包实现二维码编码与解码
  17. oracle忘记密码,修改密码
  18. adb命令之pm
  19. Azure SQL Federation(联合)
  20. CF335B

热门文章

  1. 四十五 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的bool组合查询
  2. DCGAN、WGAN、WGAN-GP、LSGAN、BEGAN原理总结及对比
  3. 25-THREE.JS 绘制线框样式几何图形的材质 线材质
  4. 《Drools7.0.0.Final规则引擎教程》之Springboot集成
  5. (四)java基本语法
  6. 一起来看CORE源码(一) ConcurrentDictionary
  7. WPF导学目录
  8. 【转载】对一致性Hash算法,Java代码实现的深入研究
  9. Spring Aware接口---BeanNameAware BeanFactoryAware ApplicationContextAware
  10. TortoiseGit不同分支合并代码2