是否可以在java注释中插入存储在配置文件(例如:application.properties)中的值,如下所示:
@MyAnnotation(name="${application.prop1}")
在 application.properties 中我有:
application.prop1=foo
所以在运行时我有:
@MyAnnotation(name="foo")
最佳答案
是的,我认为这是不可能的。 Spring 不知道你的注释,也不知道如何处理它。即使您尝试在 String name() 默认 ""
之上使用 @Value(..) (在注释内部),Spring 仍然不会实现这种情况,因为注释不是一颗 bean 。据我所知,尝试将注释设为 bean 也行不通。听起来你必须为此拿出某种类型的处理器。
也许研究以下主题可能会帮助您了解如何将它们组合在一起:
自动配置:https://www.baeldung.com/spring-boot-custom-auto-configuration
Java 反射:http://tutorials.jenkov.com/java-reflection/index.html
当然,您总有可能想退后一步考虑为什么要这样做?您想要实现什么目标,也许可以通过更“开箱即用”的方式来完成。
关于java - 在注释中注入(inject)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55012514/