是否可以按如下方式将存储在配置文件(例如:application.properties)中的值插入java批注中:
@MyAnnotation(name="${application.prop1}")
以及在application.properties中,我拥有:
application.prop1=foo
所以在运行时我有:
@MyAnnotation(name="foo")
答案 0 :(得分:1)
是的,是@Value
注释
@Value("property1")
答案 1 :(得分:1)
是的,我认为这不可能。 Spring对您的注释一无所知,也不知道该怎么做。即使您尝试在String name() default ""
顶部(在注解内部)使用@Value(..),Spring仍不会使这种情况发生,因为注解不是bean。据我所知,尝试使您的注释成为bean也是行不通的。听起来您将为此需要使用某种类型的处理器。
也许研究以下主题可能会为您提供一些有关如何将它们组合在一起的想法:
自动配置:https://www.baeldung.com/spring-boot-custom-auto-configuration
Java反射:http://tutorials.jenkov.com/java-reflection/index.html
当然,总有可能您想退后一步,考虑为什么要这样做?您想要实现的目标可能是“开箱即用”的方式。