作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想显示以下健康信息:
{
"status":"UP",
"components": {
"myHealthComposite": {
"status":"UP",
"components": {
"myFirstHealthIndicator": { "status":"UP" },
"mySecondHealthIndicator": { "status":"UP" }
}
}
},
"groups":[]
}
@Component
public class MyFirstHealthIndicator implements HealthIndicator {
@Override
public Health health() {
return Health.up().build();
}
}
@Component
public class MySecondHealthIndicator implements HealthIndicator {
@Override
public Health health() {
return Health.up().build();
}
}
@Component
public class MyHealthComposite implements CompositeHealthContributor {
@Override
public HealthContributor getContributor(String name) {
return null;
}
@Override
public Iterator<NamedContributor<HealthContributor>> iterator() {
return null;
}
}
最佳答案
一个非常简单和硬编码的解决方案,输出预期。
请删除 @Component
注释来自 MyFirstHealthIndicator 和 MySecondHealthIndicator .否则,它们也会作为单独的组件列出。
MyFirstHealthIndicator
public class MyFirstHealthIndicator implements HealthIndicator {
@Override
public Health health() {
return Health.up().build();
}
}
public class MySecondHealthIndicator implements HealthIndicator {
@Override
public Health health() {
return Health.up().build();
}
}
@Component
public class MyHealthComposite implements CompositeHealthContributor {
private Map<String, HealthContributor> contributors = new LinkedHashMap<>();
MyHealthComposite() {
this.contributors.put("myFirstHealthIndicator", new MyFirstHealthIndicator());
this.contributors.put("mySecondHealthIndicator", new MySecondHealthIndicator());
}
@Override
public HealthContributor getContributor(String name) {
return contributors.get(name);
}
@Override
public Iterator<NamedContributor<HealthContributor>> iterator() {
return contributors.entrySet().stream()
.map((entry) -> NamedContributor.of(entry.getKey(), entry.getValue())).iterator();
}
}
management.endpoint.health.show-components=always
在您的
application.properties
.
{
"status": "UP",
"components": {
"diskSpace": {
"status": "UP"
},
"myHealthComposite": {
"status": "UP",
"components": {
"myFirstHealthIndicator": {
"status": "UP"
},
"mySecondHealthIndicator": {
"status": "UP"
}
}
},
"ping": {
"status": "UP"
}
}
}
关于spring-boot - 如何实现自定义 CompositeHealthContributor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59138614/
我想显示以下健康信息: { "status":"UP", "components": { "myHealthComposite": {
我是一名优秀的程序员,十分优秀!