有没有一种方法可以使用spring的功能在运行时创建@ConfigurationProperties bean? 假设我想在自定义批注中声明前缀并在运行时为它们创建bean,因为手动创建它们对我来说似乎是一个样板。
类似这样的东西:
@MyAnnotation({
@CustomProps(prefix="foo"),
@CustomProps(prefix="bar")
})
然后在运行时,我想从具有这些前缀的属性中创建两个指定类型的配置Bean。 我知道我可以使用注释处理器为它们生成代码,但是也许通过spring的bean处理器或类似的方法更容易实现?
答案 0 :(得分:1)
是的!您可以实现它,但不能为每个属性都具有类字段。因此,简单的方法是使用spring注释处理器,对于字段,您可以使用可以使用Environment
bean进行映射的map。
https://www.baeldung.com/spring-annotation-bean-pre-processor博客将有助于理解它如何与注释处理器一起工作。
(在这里)[Spring: access all Environment properties as a Map or Properties object,您将了解如何获取属性图。