春菜:我从STS Spring Starter Project / Maven / Java 8 / Sping Boot 2.0开始,并选择Web和Actuator依赖项。它构建和运行良好,并响应http://localhost:8080/actuator/health。我在主应用程序类中添加了一个“Endpoint”,使其看起来像这样。
package com.thumbsup;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.actuate.endpoint.annotation.Selector;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class YourStash11Application {
public static void main(String[] args) {
SpringApplication.run(YourStash11Application.class, args);
}
@Endpoint(id="mypoint")
public class CustomPoint {
@ReadOperation
public String getHello(){
return "Hello" ;
}
}
}
我尝试启用www.example.com中的所有内容application.properties:
management.endpoints.enabled-by-default=true
management.endpoint.conditions.enabled=true
management.endpoint.mypoint.enabled=true
management.endpoints.web.exposure.include=*
但是当它构建时,没有对mapping /actuator/mypoint的引用,并且
http://localhost:8080/actuator/mypoint和
http://localhost:8080/application/mypoint
都返回404错误。
我错过了什么?谢谢!
3条答案
按热度按时间bvpmtnay1#
好,解决了:
缺少的是“@Component”注解。但是,这在文档中的哪里?
svmlkihl2#
最初的部分问题是代码没有添加一个没有“选择器”的端点
Source
此端点公开三个操作:
GET on /application/loggers:所有记录器的配置(因为它没有“选择器”参数):
在/application/loggers/{name}上获取:命名记录器的配置(使用名称@Selector)。
...
编辑的问题得出结论,应该是一个豆
如果添加一个用@Endpoint注解的@Bean,那么任何用@ReadOperation、@WriteOperation或@DeleteOperation注解的方法都会自动通过JMX公开,在Web应用程序中,也会通过HTTP公开。端点可以使用Jersey、Spring MVC或Spring WebFlux通过HTTP公开。
或在该功能的公告中查看评论
tmb3ates3#
也许这能帮上忙。
@ReadOperation
不支持返回类型Void
。在invoke
方法中至少应该返回一个空字符串。spring-boot 2.0.3.版本