我正在使用Java EE开发一个简单的Web应用程序。我为servlet使用注释,我想用属性文件中的值填充注释的参数,但我不知道如何做到这一点。我想做这样的事情:
// My Servlet
@WebServlet(urlPatterns="${key.value1}")
public class HomeServlet extends MyCustomServlet
{
...
}
# My properties files
key.value1=/home
有可能吗?如果是,那么解决方案是什么?
感谢。
答案 0 :(得分:4)
这不是直接可能的。您为注释属性提供的值必须是常量。编译代码后无法修改它们。来自Java Language Specification
如果声明的方法的返回类型,则是编译时错误 注释类型不是以下之一:基本类型, String,Class,Class的任何参数化调用,枚举类型 (§8.9),注释类型或元素类型的数组类型(§10) 是以上类型之一。
但是,如果您控制了它们的处理方式(由于Servlet容器处理它们,我不知道您将如何处理),您可以获取值并进行一些占位符解析。