512*_*009 7 java spring annotations
我的查询是这样的。说,我有一个自定义注释如下:
//rest of the code left out for the sake of brevity
interface @Name{
String myName();
}
Run Code Online (Sandbox Code Playgroud)
现在,在使用此注释的类中,例如字段或方法,我想将值从属性文件传递给“myName”,如下所示:
@Name(myName="${read.my.name}")
public void something(){}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我如何从属性文件中读取我的注释处理器中传递给“myName”的值?我已经阅读了一些关于使用占位符然后使用 @Value 的内容,但我不确定我可以/应该使用这种方法,比如说,一个服务类,我只想在其中标记一个带有此注释的带注释的字段或方法?任何指导将不胜感激。
感谢致敬!
这是我的方法级注释:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Name {
public String myName();
}
Run Code Online (Sandbox Code Playgroud)
这是一个声明注释的虚拟类:
public class Z {
@Name(myName = "George")
public void something() {
}
}
Run Code Online (Sandbox Code Playgroud)
获取该值的方法如下:
final Method method = Z.class.getMethod("something");
if (method.isAnnotationPresent(Name.class)) {
final Annotation annotation = method.getAnnotation(Name.class);
final Name name = (Name) annotation;
System.out.println(name.myName()); // Prints George
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10408 次 |
最近记录: |