我正在为Spring-Config-Server
和Spring-Config-Client
创建一个演示项目。
在SpringBoot 1.5.6.RELEASE
中,一切正常。
但是,当我将项目升级到2.0.1.RELEASE
时,它不提供执行器端点。
1.5.6.RELEASE
中提供的执行器端点Mapped "{[/refresh || /refresh.json],methods=[POST]}"
Mapped "{[/dump || /dump.json],methods=[GET]
Mapped "{[/heapdump || /heapdump.json],methods=[GET]
Mapped "{[/autoconfig || /autoconfig.json],methods=[GET]
Mapped "{[/resume || /resume.json],methods=[POST]}"
Mapped "{[/configprops || /configprops.json],methods=[GET]
Mapped "{[/features || /features.json],methods=[GET]
Mapped "{[/loggers/{name:.*}],methods=[GET]
Mapped "{[/restart || /restart.json],methods=[POST]}"
...and many more
2.0.1.RELEASE
中提供的执行器端点Mapped "{[/actuator/health],methods=[GET]
Mapped "{[/actuator/info],methods=[GET]
Mapped "{[/actuator],methods=[GET]
pom.xml :2.0.1.RELEASE
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.RC1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
bw 1.5.6
pom的唯一区别是版本和spring-cloud.version = Dalston.SR2
有人可以帮忙吗?
答案 0 :(得分:13)
经过一些研究后,我发现Spring Boot 2.0
中未显示端点的原因是as per docs
默认情况下,启用除关闭之外的所有端点
所以,我们需要手动启用它们。
我在management.endpoints.web.exposure.include=*
文件中添加了application.properties
,现在所有的端点都回来了。
注意:如果您使用的是.yml
,请务必使用"*"
而不是*
答案 1 :(得分:3)
现在可以使用属性
配置HTTP上端点的曝光management.endpoints.web.exposure.include
management.endpoints.web.exposure.exclude
您可以通过Actuator提到的ID公开端点。
# Include all endpoints
management.endpoints.web.exposure.include=*
# Exclude specifics
management.endpoints.web.exposure.exclude=env
答案 2 :(得分:3)
refresh
端点以通过Web使用(通过Web公开),方法是在application.yaml
management.endpoints.web.exposure.include: health,info,refresh
Spring Boot默认情况下启用health
和info
端点。有必要列出它们以使其保持启用状态。
如果您的应用程序具有此URL http://localhost:8181
您可以发送POST
刷新请求
答案 3 :(得分:1)
即使添加以下行,有时也无济于事 management.endpoints.web.exposure.include = *
尝试一下:- 刷新仅适用于OPTIONS方法,在少数情况下不支持POST方法。
答案 4 :(得分:0)
这就是我所做的。 通过设置启用所有端点
management.endpoints.web.exposure.include=*
并发送了一个空请求来刷新端点。
curl -d '{}' -H 'Content-Type: application/json' http://localhost:8000/actuator/refresh
URL http://localhost:8000/actuator/ 将列出所有可用的端点。
P.S.:我的应用程序在端口 8000 上运行。在默认端口 8080 上,我正在运行配置服务器。