Если вы хотите получить доступ к свойствам безопасным для типа способом BeanFactoryPostProcessor
, вам нужно будет связать их с Environment
самостоятельно, используя Binder
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
}
};
}