qt弹簧教程

朋友您好,在本教程中,我们将学习弹簧执行器及其所有帮助。

1.什么是弹簧执行器?

2.如何在Maven项目或Gradle项目中添加弹簧执行器?

3.创建一个具有Spring Actuator依赖项的Spring Boot项目。

4.使用弹簧执行器端点监视应用程序。

什么是弹簧执行器?

一旦您开发了应用程序并将其部署到生产环境中,就必须检查已启动并正在运行的应用程序的运行状况,这一点非常重要,尤其是对于像银行应用程序这样的关键任务应用程序(如果需要面向客户的应用程序)下降,将直接影响银行业务。

以传统的方式,在Spring Actuator之前,我们需要编写代码来检查应用程序的运行状况,但是使用Spring Actuator,我们不需要编写任何用于运行状况检查的代码,但是Spring Actuator提供了一些现成的端点,可以对于应用程序的健康检查非常有用。

如何在Maven项目或Gradle项目中添加弹簧执行器?

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
</dependencies>
dependencies {compile("org.springframework.boot:spring-boot-starter-actuator")
}

创建一个具有Spring Actuator依赖项的Spring Boot项目

让我们继续并使用Spring Initializer https://start.spring.io/创建一个具有Spring Actuator依赖关系的Spring Boot项目(与Web和DevTools一起)。

请注意,在撰写本教程时,Spring Boot版本是2.1.0

将项目导入Eclipse或您选择的任何其他IDE中,然后运行SpringActuatorApplication.java。

您将在Eclipse控制台中看到以下内容:

这表明嵌入式Tomcat已在端口8080上启动,而SpringActuatorApplication已在Tomcat上启动。 同样在控制台日志中,您可以看到执行器端点通过/ actuator URI公开。

018-11-09 20:00:29.346 INFO 8338 — [restartedMain] osbwembedded.tomcat.TomcatWebServer:Tomcat在端口8080(http)上启动,具有上下文路径”

2018-11-09 20:00:29.354 INFO 8338 — [restartedMain] nbjsSpringActuatorApplication:在9.273秒内启动SpringActuatorApplication(JVM运行11.823)

2018-11-09 20:00:29.190INFO 8338 — [restartedMain] osbaeweb.EndpointLinksResolver:在基本路径“ / actuator”下暴露2个端点。

使用弹簧执行器端点监视应用

如上所述,Spring执行器提供了一些现成的端点,可用于监视应用程序的运行状况。

ID 描述
审核事件 公开当前应用程序的审核事件信息。
豆子 显示应用程序中所有Spring Bean的完整列表。
快取 公开可用的缓存。
条件 显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。
configprops 显示所有@ConfigurationProperties的整理列表。
环保 从Spring的ConfigurableEnvironment中公开属性。
飞路 显示已应用的所有Flyway数据库迁移。
健康 显示应用程序运行状况信息。
httptrace 显示HTTP跟踪信息(默认情况下,最近100个HTTP请求-响应交换)。
信息 显示任意应用程序信息。
整合图 显示Spring Integration图。
记录器 显示和修改应用程序中记录器的配置。
液基 显示已应用的所有Liquibase数据库迁移。
指标 显示当前应用程序的“指标”信息。
映射 显示所有@RequestMapping路径的整理列表。
计划任务 显示应用程序中的计划任务。
会议 允许从Spring Session支持的会话存储中检索和删除用户会话。 使用Spring Session对React式Web应用程序的支持时不可用。
关掉 使应用程序正常关闭。
线程转储 执行线程转储。

启用端点

默认情况下,除关机外的所有端点均处于启用状态。 要启用端点,请在application.properties文件中使用以下属性。

management.endpoint.<id>.enabled

例:

要启用关闭端点,我们需要在application.properties文件中进行以下输入:

management.endpoint.shutdown.enabled=true

或者,我们可以禁用所有端点,然后有选择地启用所需的端点。 使用以下配置,将禁用除info之外的所有端点。

management.endpoints.enabled-by-default=falsemanagement.endpoint.info.enabled=true

端点执行器

让我们点击URL http:// localhost:8080 / actuator并查看端点。

注意 :我正在使用Postman测试端点,因为它以结构良好的格式显示JSON。 您可以自由使用任何其他此类工具,也可以仅使用浏览器。

在Spring Actuator中公开端点

正如您已经注意到的,在这里只能看到运行状况和信息端点。 这是因为这些是默认情况下唯一公开的端点。 由于安全原因,默认情况下不会公开所有端点,因为它们可能具有一些敏感信息,因此可能会受到威胁。

暴露特定端点

如果要通过Web(Http)公开其他端点,则需要在application.properties文件中进行以下输入。

management.endpoints.web.exposure.include= <Comma separated list of Ids of endpoints which we want to expose>

management.endpoints.web.exposure.include= health,info,env

现在,在application.properties中添加以上条目之后,让我们再次命中URL http:// localhost:8080 / actuator。

正如我们在下面的屏幕截图中看到的那样,env端点也已启用。

公开所有端点

如果要启用所有端点,则可以在application.properties中使用通配符*,如下所示。

management.endpoints.web.exposure.include=*

公开所有端点,只有少数端点除外

下面的两个条目将启用所有端点,但仅禁用环境端点。

management.endpoints.web.exposure.include=*management.endpoints.web.exposure.exclude=env

禁用HTTP端点

如果您不想通过HTTP公开端点,可以通过在application.properties中配置以下内容来完成:

management.server.port=-1

或者,您可以在application.properties中配置以下内容:

management.endpoints.web.exposure.exclude=*

自定义执行器URL以访问各种端点

默认情况下,所有Web终结点在/ actuator下都可用,其URL格式为/ actuator / {id}。

但是,可以通过在application.properties中配置以下属性来配置基本路径/执行器。

management.endpoints.web.base-path

例如,如果要将基本URL设置为/ monitor而不是/ actuator,则可以
可以在application.properties中进行如下配置:

management.endpoints.web.base-path=/monitor

这样,可以将所有端点作为/ monitor / {id}而不是/ actuator / {id}进行访问

Spring Boot执行器端点

让我们讨论一些最重要的端点。

/健康

运行状况端点将提供应用程序的状态(如果它已启动且未运行)。 这对于在生产中监视应用程序的运行状况非常重要。 该端点可以与监视应用程序集成在一起,并且在告知应用程序的实时运行状况方面将非常有帮助。

健康资讯

将公开多少健康终结点信息,取决于application.properties文件中属性management.endpoint.health.show-details的配置。

如果management.endpoint.health.show-details = never,则永远不会显示详细信息。 在这种情况下,您只会看到以下信息。 这也是默认行为。

如果management.endpoint.health.show-details = always,则向所有用户显示详细信息。因此,如下面的响应所示,我们也具有磁盘空间信息。 如果您的应用程序已连接到数据库,那么您还将获得有关数据库运行状况的信息。

如果management.endpoint.health.show-details =何时授权 ,则仅向授权用户显示详细信息。可以使用management.endpoint.health.roles属性配置授权角色。

自动配置的健康指标

Spring Boot Actuator具有许多自动配置的HeathIndicators,用于检查应用程序各个部分的运行状况。 例如,Spring Boot Actuator提供了DiskspaceHealthIndicator,它提供有关应用程序使用的磁盘空间的运行状况的信息。 同样,如果您使用的是MongoDB,则MongoHealthIndicator将检查Mongo DB的运行状况(是否为UP),并显示相关信息。 默认情况下,最终应用程序状态是由HealthAggregator派生的,HealthAggregator基本上根据状态的有序列表对每个HealthIndicator的状态进行排序。 排序列表中的第一个状态用作应用程序的最终状态。

禁用所有自动配置的运行状况指示器

这些运行状况指示器默认情况下处于启用状态,但是可以使用以下属性将其禁用:

management.health.defaults.enabled=false

禁用各个自动配置的运行状况指示器

或者,也可以如下禁用单个HealthIndicator,例如,禁用磁盘空间的运行状况检查:

management.health.diskspace.enabled=false

注意 :任何HealthIndicator的标识符将是不带有HealthIndicator后缀的bean的名称。
例如 :

DiskSpaceHealthIndicator       diskspace
MongoHealthIndicator             mongo
CassandraHealthIndicator        cassandra
DataSourceHealthIndicator      datasource

等等…

自定义健康指标

连同Spring Boot Actuator提供的内置HealthIndicators,我们还可以创建自己的自定义Health Indicator。 为此,您需要创建一个实现HealthIndicator接口并实现其health()方法的类,并通过以下相关信息返回Health作为响应:

import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;@Component
public class CustomHealthIndicator implements HealthIndicator {@Overridepublic Health health() {int errorCode = 0; // In the above line,I am simple assigning zero,but you can call Health check related code like below commented line and that method can return the appropriate code.// int errorCode = performHealthCheck();if (errorCode != 0) {return Health.down().withDetail("Error Code", errorCode).build();}return Health.up().build();}}

现在让我们再次点击运行状况终结点,看看我们的自定义运行状况指示器是否得到反映。

如我们在上面的屏幕截图中所见,自定义健康检查已包含在内。

每个组件的健康状况

也可以检查单个组件的运行状况。 在上面的示例中,我们看到了自定义运行状况以及diskSpace运行状况。

如果只想查看diskSpace运行状况,则可以执行以下操作:

http:// localhost:8080 / actuator / health / diskSpace

/信息

info端点提供有关应用程序的常规信息,该应用程序是从诸如build-info.properties或git.properties之类的文件中获取的,或者是从application.properties中关键信息下的任何属性获取的。

就像在我们的项目中一样,没有这样的文件,因此如果我们点击info端点,它将仅显示空响应,如下所示:

如果存在META-INF / build-info.properties文件,Spring Boot Actuator将显示与构建相关的信息。 build-info目标将使用项目坐标和构建时间来生成此类文件。 它还允许您添加任意数量的其他属性。

让我们在spring-boot-maven-plugin插件中,在我们项目的pom.xml中添加一个build-info目标。

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.1.0.RELEASE</version><executions><execution><goals><goal>build-info</goal></goals><configuration><additionalProperties><encoding.source>UTF-8</encoding.source><encoding.reporting>UTF-8</encoding.reporting><java.source>${maven.compiler.source}</java.source><java.target>${maven.compiler.target}</java.target></additionalProperties></configuration></execution></executions></plugin>

现在让我们再次点击信息端点,我们可以看到如下构建信息:

另外,我们可以在application.properties的info键下添加应用程序信息,如下所示,这些信息将显示在/ info端点中。

info.application.name=spring-actuator
info.application.description=spring boot actuator application
info.application.version=0.0.1-SNAPSHOT

/豆子

bean端点为Spring bean容器中定义的所有bean提供有关每个bean的以下信息:

aliases  : Names of any aliases
Scope   : Scope of bean
type      : Fully qualified type of a bean.
resource : Resource(class) in which bean is defined.
dependencies :names of dependent beans.

例如,我创建了一个名称为TestController.java的RestController,并注入了一个名称为TestService.java的bean。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestController {@Autowiredprivate TestService testService;@GetMapping("/messages")public String getMessage() {return "Hello";}
}
import org.springframework.context.annotation.Configuration;@Configuration
public class TestService {}

您可以在下面的ID为testController的屏幕截图中看到它的反映方式。

/ configprops

configProps端点为您提供了所有带有@ConfigurationProperties注释的bean。

在上面的屏幕快照中,我们可以看到在Spring框架本身中预定义的两个bean,并用@ConfigurationProperties注释,因此显示在此端点下。

下面的屏幕快照显示了HttpTraceProperties的源代码,该代码以@ConfigurationProperties注释。

/ env

env端点按以下顺序为您提供所有特定于环境的信息:

System Properties                     - JVM specific(Platform Independent)
System Env. or Env. Variables  - Operating System specific(Platform Dependent)
application level configuration - Defined in application.properties

/堆转储

heapdump端点提供了来自应用程序JVM的堆转储。 该端点以HPROF格式返回二进制数据。 由于返回的数据通常很大,因此您应该保存并进行分析。

/记录器

loggers端点提供应用程序的记录器以及它们的configureLevel,effectiveLevel(如果此记录器的配置级别为null,并且其父级也为配置级别,则有效级别将为根记录器的记录器级别)。

level属性告诉日志记录框架支持哪些所有级别。

特定记录器的记录器信息

要获取特定记录器的记录器信息,请在/ loggers端点后面的URL中传递记录器的名称/ ID,如下所示:

http:// localhost:8080 / actuator / loggers / nl.blogpsot.javasolutionsguide.springactuator.SpringActuatorApplication

指标终结点为您提供了可以为应用程序跟踪的所有指标。

检查单个指标

您可以通过将特定指标传递到/ metrics端点之后的URL来跟踪单个指标,如下所示:

http:// localhost:8080 / actuator / metrics / jvm.memory.used

一切都在Spring Actuator上,感谢阅读。 请与他人分享,您认为这可能会有所帮助。

翻译自: https://www.javacodegeeks.com/2018/11/spring-boot-actuator-tutorial.html

qt弹簧教程

qt弹簧教程_弹簧启动执行器教程相关推荐

  1. 计算机系统精品教程,_《计算机操作系统教程》课程教学课件(精品) 设备管理(88P).pdf...

    _<计算机操作系统教程>课程教学课件(精品) 设备管理(88P).pdf 第8章 设备管理 §8.1 引言 §8.2 数据传送控制方式 §8.3 中断技术 §8.4 缓冲技术 §8.5 设 ...

  2. Word教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 Word 2010入门教程 - 从简单的步骤入门Microsoft Office 2010,从基本到高级概念,包括探索窗口,后台视图,输入文本,移动,打开,关闭文档,上下文帮助,插入,选择, ...

  3. Apache POI(Word)教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 IT宝库整理的Apache POI Word入门教程 - 从基本到高级概念的简单简单步骤学习Apache POI Word,其中包括概述,Apache POI安装,核心类,文档,段落,边框, ...

  4. EJB教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 EJB入门教程 - 从简单的步骤了解EJB 3.0和3.1(Enterprise Java Bean)框架,从基本概念到高级概念,包括概述,环境设置,应用服务器,容器,企业Bean,注释,会 ...

  5. 高级Excel功能教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 Excel是办公室自动化中非常重要的一款软件,Excel函数则是Excel中的内置函数.Excel函数共包含11类,分别是数据库函数.日期与时间函数.工程函数.财务函数.信息函数.逻辑函数. ...

  6. weakauras教程_简单的WeakAuras2教程 基础功能设置指南

    玩家分享简单的WeakAuras2插件的基本攻略设置教程,WeakAuras2作为当今的神级插件已经受到了越来越多玩家的使用,WeakAuras2插件除了可以设置简单的技能监视,能量.蓝量的监控以外还 ...

  7. javplayer 使用教程_意大利单簧管初级教程报名步骤

    意大利单簧管初级教程报名步骤,在课程的设置方面,北京慧禾国际艺术教育更注重于音乐类专业词汇的培训,加强学生生活口语的实际运用,为学生出国留学打下坚实基础. 意大利单簧管初级教程报名步骤, 在笔者使用过 ...

  8. Java国际化教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 Java国际化入门教程 - 从简单的步骤了解Java国际化从基本到高级概念,包括概述,环境设置,区域设置,区域设置详细信息,显示语言,ResourceBundle,NumberFormat, ...

  9. Windows 10教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 Windows 10入门教程 - 从简单的步骤了解Windows 10,从基本到高级概念,包括概述,安装,入门,GUI基础知识,导航,开始菜单,任务栏,平板电脑模式,文件资源管理器,Cort ...

  10. Windows 10开发教程_编程入门自学教程_菜鸟教程-免费教程分享

    教程简介 Windows 10开发入门教程 - 从简单的步骤了解Windows 10开发,从基本到高级概念,包括简介,UWP,第一个应用程序,商店,XAML控件,数据绑定,XAML性能,自适应设计,自 ...

最新文章

  1. CSDN - 进程结束后new出的内存会回收吗?
  2. 我又发现了7款特别好用的神仙软件,让人心动!
  3. 什么是 Change Notification,为什么它很重要(译)
  4. 常用,好用的js代码
  5. list::splice函数的用法与参数解释
  6. 怎么把网页源码家入hexo博客_一款被大厂选用的 Hexo 博客主题
  7. jdk12 jdk1.8_JDK 12的Files.mismatch方法
  8. python利用什么来写模块-Python模块的制作方法实例分析
  9. python外部库是什么_如何使用Portable Python安装外部库?
  10. 文件设置Thrift实例
  11. 山东大学网络教育计算机基础考试题,山东大学网络教育计算机网络基础期末考试复习...
  12. python获取调用函数的注释,如何使用函数注释验证函数调用类型
  13. ipp for windows下载与安装 vs2017
  14. 产品经理的自我修养——用显微镜看微信产品设计
  15. 计算机信息科学学科分类,-学科分类与代码.doc
  16. 今日头条信息流 - 橙子建站
  17. 迅视财经 五条特色大街上线
  18. 网易微专业IOS开发工程师教程(完整)
  19. 推荐系统的PMF - 概率矩阵分解和协同过滤
  20. 鼠标左键双击图标出现属性窗口的问题

热门文章

  1. H - Checker FZU - 2041
  2. P3258 [JLOI2014]松鼠的新家
  3. [POJ 3164]Command Network(最小树形图,朱刘算法)
  4. CF1325D:Ehab the Xorcist(位运算)
  5. 最大乘积(记忆化搜索)
  6. P3901-数列找不同【模拟】
  7. vijos1056-图形面积【离散化】
  8. ssl1341-Asteroids【最大匹配,最小点覆盖,图论】
  9. 【jzoj】2018.1.31 NOIP普及组——D组模拟赛
  10. 2021牛客暑期多校训练营4 D-Rebuild Tree(prufer序列+树形dp)