说明
spring boot提供的actuator插件提供了大量的生产级特性,通过配置进行使用
<!-- 监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
endpoint
我们可以通过一系列的HTTP请求获得应用程序的相关信息,这些请求就是endpoint,具体有如下几个
autoconfig : 获取自动配置信息
beans :获取Spring Bean基本信息
configprops :获取配置项信息
dump : 获取当前线程基本信息
env :获取环境变量信息
health : 获取健康检查信息
info : 获取应用的基本信息
metrics : 获取性能指标信息
mappings : 获取请求映射信息
trace : 获取请求调用信息
可以通过application.properties配置文件进行精准控制
# 放弃安全限制
management.security.enabled=false
# 关闭一个endpoint:beans
endpoints.beans.enabled=false
# 关闭所有endpoint,仅打开beans
endpoints.enable=false
endpoints.beans.enabled=false
# 修改endpoint名称
endpoints.beans.id=mybeans
# 修改请求路径
endpoints.beans.path=/endpoints/mybeans
信息聚合
POM.xml文件中增加如下内容
<!-- actuator聚合插件 /actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
可以通过/actuator 来访问聚合信息
可以通过图形化插件进行显示,在POM.xml文件中增加如下内容
<!-- actuator聚合图形化插件 /actuator -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
</dependency>
可以通过/actuator 来访问图形化聚合信息
应用信息
通过/info可以查看应用信息,信息可以在application.properties文件中配置,如果产生乱码,请戳这里,有解决方案
info.app.name=应用名称,使用POM中的信息,@project.modelVersion@
info.app.description=对应用的描述
info.app.version=1.0.0
# 自定义用户信息
info.user.name=hutou
info.user.sex=男
info.user.age=22
健康检查
通过/health可以进行监控检查,下面是一些配置项
# 暴露磁盘空间信息
endpoints.health.sensitive=true
# 健康信息缓存时间,设置太短会影响性能
endpoints.health.time-to-live=500
spring boot提供了很多内置的监控检查功能,都放置在:org.springframework.boot.actuate.health包下
ApplicationHealthIndicator
DiskSpaceHealthIndicator
DataSourceHealthIndicator 检查数据库连接
MailHealthIndicator 检查邮件服务器
MongoHealthIndicator 检查MongoDB数据库
....
可以自行扩展健康检查,一篇好文章
跨域访问
CORS实现跨域访问是比较好的方案!Spring boot有很好的支持!
- 在配置文件中进行配置
## 跨域访问
endpoints.cors.allowed-origins=http://www.baidu.com
endpoints.cors.allowed-methods=GET,PUT,POST,DELETE
- 在应用中增加@CrossOrigin注解来实现跨域
- 自定义配置
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter{
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://www.baidu.com")
.allowedMethods("GET","PUT","POST","DELETE");
}
}