foojay
Spring Boot 配置的隐藏秘诀:EnvironmentPostProcessor
文章介绍 Spring Boot 的 EnvironmentPostProcessor:它在 ApplicationContext 创建前修改 Environment,适合从共享 starter 向多个服务提供可覆盖的默认配置。普通 application.yml、额外 profile 或 @Configuration/@PropertySource 分别存在加载顺序、优先级和需人工启用等问题。EnvironmentPostProcessor 需通过 META-INF/spring.factories 注册,Spring Boot 4 中接口包名有所调整。使用 addLast 可将默认值置于最低优先级,addFirst 可在合并用户配置后强制生效。作者以 Axelix 暴露 Actuator 端点为例,说明应先用 Binder 读取并合并用户配置,且读取现有配置的处理器应在 ConfigDataEnvironmentPostProcessor 之后运行;同时需注意无法注入 Bean、日志未初始化、异常处理及全局生效等限制。