使用属性文件中的值填充注释参数值

时间:2014-01-31 15:41:30

标签: java java-ee

我正在使用Java EE开发一个简单的Web应用程序。我为servlet使用注释,我想用属性文件中的值填充注释的参数,但我不知道如何做到这一点。我想做这样的事情:

// My Servlet    
@WebServlet(urlPatterns="${key.value1}")
    public class HomeServlet extends MyCustomServlet
    {
      ...
    }

# My properties files
key.value1=/home

有可能吗?如果是,那么解决方案是什么?

感谢。

1 个答案:

答案 0 :(得分:4)

这不是直接可能的。您为注释属性提供的值必须是常量。编译代码后无法修改它们。来自Java Language Specification

  

如果声明的方法的返回类型,则是编译时错误   注释类型不是以下之一:基本类型,   String,Class,Class的任何参数化调用,枚举类型   (§8.9),注释类型或元素类型的数组类型(§10)   是以上类型之一。

但是,如果您控制了它们的处理方式(由于Servlet容器处理它们,我不知道您将如何处理),您可以获取值并进行一些占位符解析。

Here's an alternative for dynamic url patterns.