qt弹簧教程_弹簧启动执行器教程

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弹簧教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

驾驶证遗失如何补发

第六十三条机动车驾驶证遗失的&#xff0c;机动车驾驶人应当向机动车驾驶证核发地或者核发地以外的车辆管理所申请补发。申请时应当填写申请表&#xff0c;并提交以下证明、凭证&#xff1a; &#xff08;一&#xff09;机动车驾驶人的身份证明&#xff1b; &#xff08;二&…

两列模糊对比 oracle,excel 模糊比对两列数据并将比对结果显示出来 | excel表格两列数据模糊对比...

excel2016如何将两列完全不一样的数据进行模糊对比&#xff1f;B2单元格输入公式IF(ISNUMBER(FIND(LEFT(A2,3),PHONETIC(G$2:G$8))),"","非类")下拉。 选中A、B列排可出非类似值。对G列的处理也是相同办法&#xff0c;修改一下公式中的单元格或区域引用即可…

JMetro版本5.2已发布

再次问好 JMetro的新更新刚刚发布。 添加了两种新的控件样式&#xff1a;标题窗格和手风琴。 此外&#xff0c;还对现有样式和错误修复进行了调整。 最终&#xff0c;JMetro现在也可以通过Maven Central获得。 在这篇文章中&#xff0c;我将详细介绍刚刚发布的JMetro 5.2版。…

IntelliJ IDEA for Mac 如何创建Java Web项目_创建Java EE项目_创建项目_新建项目

Java EE 项目创建好后如下图所示&#xff1a; 如果你的项目含有多个模块&#xff0c;那么上图的项目结构布局是不合理的&#xff0c;你必须将默认的模块删除掉&#xff08;默认模块的 .iml 文件也要删除&#xff09;。 选择模块&#xff0c;点按鼠标右键&#xff0c;选择【Rem…

注解代替枚举_精选枚举代替开关

注解代替枚举问题及其解决方案 开关/案例是用大多数命令式编程语言实现的通用控制结构。 开关比一系列的if / else更具可读性。 这是一个简单的示例&#xff1a; // Switch with int literal switch (c) {case 1: one(); break;case 2: two(); break;case 3: three(); break;…

oracle表是动态表怎么算排名,Oracle学习动态性能表

按照OracleDocument中的描述&#xff0c;v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sOracle 学习动态性能表 v$locked_object本视图列出系统上的每个事务处理所获得的所有锁。V$LOCKED_OBJECT中的列说明&#xff1a;XIDUSN…

IntelliJ IDEA for Mac 中 Java Web Project 默认的工件(Artifacts)输出目录

你创建 Java Web 项目/模块时&#xff0c;IDEA 会自动创建 Web 模块的工件列表&#xff0c;而工件的默认输出目录如下&#xff1a; war 工件的默认输出目录&#xff1a; /Users/liaowenxiong/Documents/IdeaProjects/java-exercises/模块名称/target exploded 工件的默认输出…

oracle导数的数据乱码,Oracle10g导数据时中文乱码相关处理

1.Oracle导入数据库出现数据库数据中文乱码问题&#xff0c;最后查得是由于数据库安装时&#xff0c;选择编码为默认编码问题分析&#xff1a;使用imp导入数据时&#xff0c;屏幕输出过以下提提示信息&#xff1a;import done in US7ASCII character set and AL16UTF16 NCHAR c…

jdk12 jdk1.8_JDK 12的Files.mismatch方法

jdk12 jdk1.8JDK 12向Files类引入了一种新方法。 方法Files.mismatch(Path,Path)已通过JDK-8202302引入JDK 12&#xff0c;并在JDK 12 Early Access Build 20 &#xff08;支持新{systemProperty} Javadoc标记的相同早期访问版本&#xff09;中可用 。 JDK-8202302 [“用于比较…

tomcat如何查找请求资源的?

用户的请求过来&#xff0c;comcat 会根据虚拟目录先到 webapps 目录查找项目&#xff0c;如果找到了则进入到项目下的 WEB-INF 目录下查找 web.xml 文件&#xff0c;查找到则解析该文件&#xff0c;根据资源路径查找请求资源&#xff0c;如果找到了资源则正常实例化和调用有关…

java使用迭代器删除元素_使用Java从地图中删除元素

java使用迭代器删除元素关于从Java中的Map删除元素的非常简短的文章。 我们将专注于删除多个元素&#xff0c;而忽略了您可以使用Map.remove删除单个元素的Map.remove 。 以下Map将用于此帖子&#xff1a; Map<Integer, String> map new HashMap<>(); map.put(1…

IntelliJ IDEA普通的Java项目如何转成Maven Web项目

文章目录一、把项目改成 Java Web 项目二、把 Java Web 项目改成 Maven 项目三、调整目录结构四、部署项目五、参考一、把项目改成 Java Web 项目 注&#xff1a;只有 Web 项目才能创建 Artifact。 二、把 Java Web 项目改成 Maven 项目 得到的目录结构如下图所示&#xff1a;…

php全选按钮怎么写,PHP中的“全选”复选框,其中包含header.php

我必须在我的代码中包含一个header.php&#xff0c;那是问题的方面。当我不包括它&#xff0c;代码工作正常。但是&#xff0c;当我包含它代码不起作用&#xff0c;意味着检查所有按钮不会选中所有复选框。我的代码 -checkall.phpfunction toggle(source) {checkboxes documen…

bom .dom_MicroProfile 2.2 BOM导入支持

bom .domMicroProfile 2.2刚刚发布&#xff0c;其中包含对Fault Tolerance&#xff0c;Open Tracing&#xff0c;Open API和Rest Client API的更新。 自2.2版以来&#xff0c;还支持使用BOM&#xff08;物料清单&#xff09;依赖项导入。 通过这种方法&#xff0c;我们可以在d…

java: 错误: 不支持发行版本 5

文章目录一、在 pom.xml 文件中加入 properties 标签二、在 maven 的配置文件设置默认的 JDK 版本三、IDE 配置参考一、在 pom.xml 文件中加入 properties 标签 我本地安装的 JDK 版本是 11&#xff0c;配置如下&#xff1a; <properties><maven.compiler.source>…

谷歌gcp 远程计算机_引导性GCP:带有Google Cloud Pub / Sub的Spring Cloud Stream

谷歌gcp 远程计算机我最近在Sprint Central的工程博客上阅读了Josh Long的Bootiful GCP系列 &#xff0c;特别喜欢关于使用Google Cloud的Pub / Sub的第四部分 。 我感到受到该系列的启发&#xff0c;同时我还在为我的一个新项目评估Spring Cloud Stream。 我以为&#xff0c;我…

Oracle函数初探

我非常高兴有机会通过Cloud Native Limited Availability Program测试Oracle功能。 去年&#xff0c;当我上次尝试在Oracle Groundbreaker APAC巡回赛中在Oracle Cloud中运行无服务器功能时&#xff0c;有两种选择。 可以在虚拟机中运行我自己的Fn服务器&#xff0c;也可以在托…

在同一个tomcat中,使用不同的端口部署不同的项目

文章目录借助开发工具手动配置&#xff08;不使用开发工具&#xff09;第一步&#xff1a;修改 server.xml 文件第二步&#xff1a;创建部署目录第三步&#xff1a;复制 Catalina 目录第四步&#xff1a;复制 policy 和 properties 文件第五步&#xff1a;部署项目第六步&#…

jdk11换jdk8版本_在JDK 9(以及8)以及更高版本中,所有内容都可以作为一个流

jdk11换jdk8版本在JDK 8中&#xff0c;我们终于可以使用流了&#xff0c;除了您使用的API无法产生流的时代之外&#xff0c;其他一切都很好。 然后&#xff0c;您最终编写了一个包装器类方法&#xff0c;该方法允许您将迭代器转换为Stream&#xff0c;因为您错过了流。 public…

IntelliJ IDEA 的 Project Structure 窗口中的 Artifacts 勾选 Include in project build

文章目录在 war 工件勾选 Include in project buildBuild Project/ModuleRebuild Project/Module在 war exploded 工件勾选 Include in project build在 war 工件勾选 Include in project build war 工件处勾选 Include in project build&#xff0c;表示在构建项目/模块之后&a…