我有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
,其中包含位于资源文件夹中的所有操作文本。从.properties
注释中读取LoggerExecute
文件中的键的简便方法是什么?对于这种情况,注入环境变量或覆盖某些类似乎太多了
答案 0 :(得分:1)
注释属性值必须是常量表达式。因此,你不能做像
这样的事情@LoggerExecute(action = loadFromProperties(someKey))
您可以做的是在注释中创建和使用String
键值
@LoggerExecute(action = "myapp.action.submit.data")
然后,在您的建议中,检索注释,在属性文件中查找action
值,然后使用它。