java - 访问 BeanFactoryPostProcessor 中的属性

标签 java spring spring-boot kotlin

我正在尝试创建一些东西,它会根据可配置的属性(来自 application.yml 等)自动创建 bean。

由于我不能像通常在 BeanFactoryPostProcessor 中那样访问属性组件,所以我对如何访问它们感到困惑。

如何访问 BeanFactoryPostProcessor 中的应用程序属性?

最佳答案

如果您想在 BeanFactoryPostProcessor 中以类型安全的方式访问属性,您需要使用 Binder< 从 Environment 中自行绑定(bind)它们 API。这本质上是 Boot 本身为支持 @ConfigurationProperties bean 所做的。

您的 BeanFactoryPostProcessor 看起来像这样:

@Bean
public static BeanFactoryPostProcessor beanFactoryPostProcessor(
        Environment environment) {
    return new BeanFactoryPostProcessor() {

        @Override
        public void postProcessBeanFactory(
                ConfigurableListableBeanFactory beanFactory) throws BeansException {
            BindResult<ExampleProperties> result = Binder.get(environment)
                    .bind("com.example.prefix", ExampleProperties.class);
            ExampleProperties properties = result.get();
            // Use the properties to post-process the bean factory as needed
        }

    };
}

关于java - 访问 BeanFactoryPostProcessor 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53851533/

相关文章:

java - Java 中的 Try-Catch 语句

javascript - 将文件夹上传到服务器(mvc spring)

java - Hibernate:使用 sessionFactory.getTypeHelper().custom(userType) 时出现问题

java - Tomcat 中 WebJars 的 Spring Boot 上下文路径

java - 在Java中将字符串中的多个字符转换为一个整数

java - 在 Hibernate 中使用不同别名多次连接到同一关联

spring - 我想在 Spring Data MongoDB 持久层中使用数字序列作为 ID。如何配置此行为?

java - 我应该在哪个层,Dao 或 Service 中解析 Rest Client 响应?

java - 通过 spring rest 模板获取异常的堆栈跟踪

java - 虽然构造函数需要参数我仍然可以在没有它们的情况下调用它