我试图将“ management.endpoints.web.base-path”注入到我需要知道的班级字段中。我做了几个小时的搜索,但所有答案都是通过在application.xml(或yaml)中设置management.endpoints.web.base-path而不是“如何获取默认值”来“如何自定义端点” management.endpoints.web.base-path”。
以下简单代码期望在Spring Boot应用程序启动时获取任何加载的变量,但在变量中未检索到任何东西。
@Autowired
private Environment environment;
public void myMethod(){
final String actuatorBase = environment.getProperty("management.endpoints.web.base-path");
}
如果我在application.properties中定义它,则应该可以肯定地加载它,但是我想知道为什么在这里无法检索default(“ / actuator”)。但是,当我运行该应用程序时,我没有问题可以通过/ actuator访问所有与执行器相关的功能端点。
因为它不起作用,所以用@Value注释注入变量也不起作用。
当我在调试器中检查环境变量时,我能够看到application.yaml已加载并且所有替代变量也在那里,但是并不是所有的默认“管理”内容都在那里。
有什么主意吗?此应用程序具有一些自定义配置,没有使用所有AutoConfigurer的内容,因此想知道是否需要使用特定的自动配置来实现它。
我正在使用Spring Boot 2.1.0.RELEASE。
答案 0 :(得分:1)
在这里自我回答。
WebEndpointProperties是加载所有management.endpoints.web前缀属性的文件,
@Autowired
private WebEndpointProperties webEndpointProperties;
在课堂上,然后
String actuatorWebBasePath = this.webEndpointProperties.getBasePath();
在我的方法中给了我一个基本路径(/执行器)。