我正在用 Java EE 开发一个简单的 Web 应用程序。我对 servlet 使用注释,我想用属性文件中的值填充注释的参数,但我不知道如何执行此操作。我想做这样的事情:
// My Servlet
@WebServlet(urlPatterns="${key.value1}")
public class HomeServlet extends MyCustomServlet
{
...
}
# My properties files
key.value1=/home
Run Code Online (Sandbox Code Playgroud)
是否可以 ?如果是,解决方案是什么?
谢谢。
这不是直接可能的。您赋予注释属性的值必须是常量。代码编译后不能修改。来自Java 语言规范
如果在注释类型中声明的方法的返回类型不是以下之一,则为编译时错误:原始类型、字符串、类、类的任何参数化调用、枚举类型(第 8.9 节)、注释类型,或元素类型为上述类型之一的数组类型(第 10 节)。
但是,如果您控制它们的处理方式(我不知道您会如何处理,因为它们是由 Servlet 容器处理的),您可以获得该值并进行一些占位符解析。