我正在使用Java EE开发一个简单的Web应用程序.我为servlet使用注释,我想用属性文件中的值填充注释的参数,但我不知道如何做到这一点.我想做这样的事情:
// My Servlet
@WebServlet(urlPatterns="${key.value1}")
public class HomeServlet extends MyCustomServlet
{
...
}
# My properties files
key.value1=/home
可能吗 ?如果是,那么解决方案是什么?
谢谢.
解决方法:
这不是直接可能的.您为注释属性提供的值必须是常量.编译代码后无法修改它们.从Java Language Specification
It is a compile-time error if the return type of a method declared in
an annotation type is not one of the following: a primitive type,
String, Class, any parameterized invocation of Class, an enum type
(§8.9), an annotation type, or an array type (§10) whose element type
is one of the preceding types.
但是,如果您控制了它们的处理方式(我不知道您将如何处理它们,因为它们由Servlet容器处理),您可以获取值并执行一些占位符解析.
标签:java,java-ee
来源: https://codeday.me/bug/20190624/1280268.html