[英]Inject value inside annotation
是否可以在java批注內插入存儲在配置文件(例如application.properties)中的值,如下所示:
@MyAnnotation(name="${application.prop1}")
在application.properties中,我有:
application.prop1=foo
因此,在運行時我有:
@MyAnnotation(name="foo")
是的,是@Value
注釋
@Value("property1")
是的,我認為這是不可能的。 Spring對您的注釋一無所知,也不知道該怎么做。 即使您嘗試在String name() default ""
(在注解的內部)之上使用@Value(..),由於注解不是bean,Spring仍不會實現這一點。 據我所知,嘗試使您的注釋成為bean也是行不通的。 聽起來您將為此需要使用某種類型的處理器。
也許研究以下主題可能會幫助您提供一些有關如何將它們組合在一起的想法:
自動配置: https : //www.baeldung.com/spring-boot-custom-auto-configuration
特別說明: https ://www.baeldung.com/spring-expression-language
Java反射: http : //tutorials.jenkov.com/java-reflection/index.html
當然,總有可能您會后退並考慮為什么要這樣做? 您想要實現的目標可能是“開箱即用”的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.