我有一个带有这样的注释的 Aspect
@Target(value = { ElementType.METHOD, ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface LoggerExecute {
public String action();
}
这样我就可以将注释放在我想要记录的函数上。例如:
@RequestMapping(....)
@LoggerExecute(action = "Logging submitting data")
public ModelAndView submitData(...) {
....
}
现在我有一个 eventLogs.properties
,其中包含该操作的所有文本,位于资源文件夹中。直接从 LoggerExecute
注释读取 .properties
文件中的键的简单方法是什么。对于这种情况,注入(inject)环境变量或覆盖某些类似乎太多了
最佳答案
注释属性值必须是常量表达式。因此,你不能做类似的事情
@LoggerExecute(action = loadFromProperties(someKey))
您可以做的是在注释中创建并使用String
键值
@LoggerExecute(action = "myapp.action.submit.data")
然后,在您的建议中,检索注释,在属性文件中查找 action
值,然后使用它。
关于java - 从自定义注释中读取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24355109/