要获得通过REST端点公开的执行器端点的属性完全相同,可以在一个类中注入相应端点类的实例。在您的情况下,“正确的”端点类将是InfoEndpoint。对于度量标准,运行状况等,有类似的端点类。
在Spring Boot 1.5.x和Spring Boot
2.x之间,界面有所变化。因此,确切的完全合格的类名称或读取方法名称可能会根据所使用的Spring Boot版本而有所不同。在Boot
1.5.x中,您可以在
org.springframework.boot.actuate.endpoint程序包中找到大多数端点。
大致来说,这就是您可以构建一个简单的组件来读取version属性的方法(假设info端点内的属性名称只是
build.version):
@Componentpublic class VersionAccessor { private final InfoEndpoint endpoint; @Autowired public VersionAccessor(InfoEndpoint endpoint) { this.endpoint = endpoint; } public String getVersion() { // Spring Boot 2.x return String.valueOf(getValueFromMap(endpoint.info())); // Spring Boot 1.x return String.valueOf(getValueFromMap(endpoint.invoke())); } // the info returned from the endpoint may contain nested maps // the exact steps for retrieving the right value depends on // the exact property name(s). Here, we assume that we are // interested in the build.version property private Object getValueFromMap(Map<String, Object> info) { return ((Map<String, Object>) info.get("build")).get("version"); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)