- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个@ConfigurationProperties
POJO。我希望能够在 ImportBeanDefinitionRegistrar
@ConfigurationProperties("com.some.prefix")
public class VersionProperties {
private List<String> someList;
private String someString;
}
我有一个具有以下属性的 yaml 文件
com.some.prefix:
some-string: test
some-list:
- v1
- v3
我有一个 AutoConfiguration 类,如下所示:
@Configuration
@EnableConfigurationProperties(SomeProperties.class)
@Import(SomeImportBeanDefinitionRegistrar.class)
public class SomeAutoConfiguration {
}
这个Github Issue表示使注册器 BeanFactoryAware
将允许访问配置属性 bean。
我已经这样做了,但我遇到的问题是在我的注册器中,配置属性 bean 的所有字段都是 null。
@Override
public void registerBeanDefinitions(
AnnotationMetadata importingClassMetadata,
BeanDefinitionRegistry registry
) {
var props = beanFactory.getBean(SomeProperties.class);
// all of props fields are null here
}
最佳答案
问题是 ImportBeanDefinitionRegistrar
在生命周期中发生得太早,无法填写 ConfigurationProperties
。因此,我必须让我的注册器 EnvironmentAware
然后使用 Binder
API 填写 ConfigurationProperties
POJO。
var props = Binder.get(environment)
.bind("com.some.prefix", SomeProperties.class)
.orElse(null);
关于java - 获取 ImportBeanDefinitionRegistrar 中的 ConfigurationProperties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58070639/
我的用例处理动态创建 bean。我发现它们是注册 bean 定义的两个选项:ImportBeanDefinitionRegistrar和 BeanDefinitionRegistryPostProce
我有一个@ConfigurationProperties POJO。我希望能够在 ImportBeanDefinitionRegistrar 中访问它 @ConfigurationProperties
我已经实现了 ImportBeanDefinitionRegistrar 以从外部源创建 bean 定义。它必须是注册商,因为我事先不知道将创建多少个 bean 定义。 当我在我的应用程序类上使用注册
我是一名优秀的程序员,十分优秀!