福州市建设局网站 动态,北龙中网 可信网站验证 费用,太原定制网站开发制作,wordpress 制作网站模板场景
我在通用jar包中引入 spring-boot-starter-actuator 这样希望引用通用jar的所有服务都可以直接使用 actuator 中的功能#xff0c;
问题在于#xff0c;正常情况下#xff0c;actuator的配置都写在每个项目的yml文件中#xff0c;这就意味着#xff0c;虽然每个项目…场景
我在通用jar包中引入 spring-boot-starter-actuator 这样希望引用通用jar的所有服务都可以直接使用 actuator 中的功能
问题在于正常情况下actuator的配置都写在每个项目的yml文件中这就意味着虽然每个项目都有了该jar但是配置还是得单独写
于是考虑能不能在common jar中直接写这个配置其他服务都避免做出改动思路方向就是想着在spring服务启动前
能不能通过一种方式将我们的配置注入到spring的配置中类似在application.yml中拦截添加一下
通过 EnvironmentPostProcessor 可以帮我们实现这个功能。
实现
第一步定义好yml文件。 management:endpoints:web:exposure:include:- info- health- loggers #默认只暴露 /health 以及 /info 端点第二步自定义 PostProcessort 实现 EnvironmentPostProcessor在这里我们读取自定义的配置文件并添加到 environment 中。
public class ActuatorPropertiesPostProcessor implements EnvironmentPostProcessor {SneakyThrowsOverridepublic void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {PropertySource propertySource new YamlPropertySourceLoader().load(actuator.yml, new FileUrlResource(ActuatorPropertiesPostProcessor.class.getResource(/Actuator.yml))).get(0);environment.getPropertySources().addLast(propertySource);}}第三步定义好 spring.factories内容指向你刚写好的类。 org.springframework.boot.env.EnvironmentPostProcessoryou.package.name.ActuatorPropertiesPostProcessor大功告成这样你的所有引用common jar的服务就都可以使用actuator功能了。