如何额外配置自动创建的 Spring Boot bean?

dev*_*ull 7 java spring spring-boot

是否有一种标准方法可以在 Spring Boot 中配置已创建的 bean,即不创建自己提供此 bean,而是以某种方式将该 bean 注入到配置类中的挂钩方法中并执行其他类?

例如,我希望 ThymeleafTemplateResolver由其自动配置创建,但我想更改一个属性。

做到这一点的最佳方法是什么(同样,不是通过提供我自己的TemplateResolver)?

And*_*son 9

您可以@Autowired自动配置TemplateResolver到配置类中,然后使用@PostConstruct方法来设置属性。

public class ExampleConfiguration {

    @Autowired
    private TemplateResolver templateResolver;

    @PostConstruct
    void customize() {
        templateResolver.setFoo("bar");
    }

}
Run Code Online (Sandbox Code Playgroud)

  • @M.Deinum 这个问题具体是关于“TemplateResolver”,它既不是“InitializingBean”,也不是用“@PostConstruct”注释的。“BeanPostProcessor”可能是一个更通用的解决方案,但它比我上面描述的方法更复杂。 (3认同)