Spring actuator 访问’/auditevents’ endpoint 返回404
在使用Spring Boot Actuator的项目中,当访问/actuator/auditevents端点时,返回结果为404,为什么没有正常显示出来呢?
pom.xml依赖如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
application.properties的配置如下:
management.endpoints.web.exposure.include=*
但当访问http://localhost:8080/actuator时并未出现/auditevents的端点:
{ "_links": { "beans": { "href": "http://localhost:8080/actuator/beans", "templated": false }, "caches": { "href": "http://localhost:8080/actuator/caches", "templated": false }, "caches-cache": { "href": "http://localhost:8080/actuator/caches/{cache}", "templated": true }, "conditions": { "href": "http://localhost:8080/actuator/conditions", "templated": false }, "configprops": { "href": "http://localhost:8080/actuator/configprops", "templated": false }, "env": { "href": "http://localhost:8080/actuator/env", "templated": false }, "env-toMatch": { "href": "http://localhost:8080/actuator/env/{toMatch}", "templated": true }, "health": { "href": "http://localhost:8080/actuator/health", "templated": false }, "health-path": { "href": "http://localhost:8080/actuator/health/{*path}", "templated": true }, "heapdump": { "href": "http://localhost:8080/actuator/heapdump", "templated": false }, "info": { "href": "http://localhost:8080/actuator/info", "templated": false }, "loggers": { "href": "http://localhost:8080/actuator/loggers", "templated": false }, "loggers-name": { "href": "http://localhost:8080/actuator/loggers/{name}", "templated": true }, "mappings": { "href": "http://localhost:8080/actuator/mappings", "templated": false }, "metrics": { "href": "http://localhost:8080/actuator/metrics", "templated": false }, "metrics-requiredMetricName": { "href": "http://localhost:8080/actuator/metrics/{requiredMetricName}", "templated": true }, "scheduledtasks": { "href": "http://localhost:8080/actuator/scheduledtasks", "templated": false }, "self": { "href": "http://localhost:8080/actuator", "templated": false }, "threaddump": { "href": "http://localhost:8080/actuator/threaddump", "templated": false } } }
为什么会出现这种情况呢?
这是因为审计功能的开启需要在应用程序中提供类型为AuditEventRepository的Bean,也就是说Spring容器中需要实例化这样一个Bean。
这里可以通过是实例化AuditEventRepository的子类InMemoryAuditEventRepository来实现:
@Configuration public class AuditEventConfig { @Bean public InMemoryAuditEventRepository repository(){ return new InMemoryAuditEventRepository(); } }
重启并再次访问,便可以看到auditevents端点了,并且直接访问该端点会展示相应的内容了。
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:https://choupangxia.com/2021/07/12/spring-actuator-auditevents/