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" ;
}
}
}
我尝试在application.properties中启用所有内容:
management.endpoints.enabled-by-default=true
management.endpoint.conditions.enabled=true
management.endpoint.mypoint.enabled=true
management.endpoints.web.exposure.include=*
但是当它构建时,没有参考映射/执行器/ mypoint,和
http://localhost:8080/actuator/mypoint和
http://localhost:8080/application/mypoint
两者都返回404错误。
我错过了什么?谢谢!
答案 0 :(得分:4)
好的,解决了:
@Endpoint(id="mypoint")
@Component
public class myPointEndPoint {
@ReadOperation
public String mypoint(){
return "Hello" ;
}
}
缺少的是“@Component”注释。但是,这在文档中的位置是什么?
答案 1 :(得分:0)
最初的部分问题是代码没有添加没有“选择器”的端点
@Endpoint(id = "loggers")
@Component
public class LoggersEndpoint {
@ReadOperation
public Map<String, Object> loggers() { ... }
@ReadOperation
public LoggerLevels loggerLevels(@Selector String name) { ... }
@WriteOperation
public void configureLogLevel(@Selector String name, LogLevel configuredLevel) { ... }
}
此端点公开三个操作:
GET on / application / loggers:所有记录器的配置(因为它 没有“selector”参数):
GET on / application / loggers / {name}:命名的配置 记录器(使用名称@Selector)。
...
编辑后的问题得出结论that it should be a bean
如果添加@Endpoint注释的@Bean,则注释任何方法 使用@ ReadOperation,@ WritOperation或@DeleteOperation 通过JMX自动公开,并在Web应用程序中通过HTTP自动公开 好。端点可以使用Jersey,Spring MVC或HTTP通过HTTP公开 Spring WebFlux。
答案 2 :(得分:0)
也许这会对某人有所帮助。
看起来像@ReadOperation
不支持返回类型Void
。您应该在invoke
方法上至少返回一个空字符串。
spring-boot 2.0.3.RELEASE
@Component
@Endpoint(id = "heartbeat")
public class HeartbeatEndpoint {
@ReadOperation
public String invoke() {
return "";
}
}