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

Pat*_*ick 5 java jakarta-ee

我正在用 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)

是否可以 ?如果是,解决方案是什么?

谢谢。

Sot*_*lis 5

这不是直接可能的。您赋予注释属性的值必须是常量。代码编译后不能修改。来自Java 语言规范

如果在注释类型中声明的方法的返回类型不是以下之一,则为编译时错误:原始类型、字符串、类、类的任何参数化调用、枚举类型(第 8.9 节)、注释类型,或元素类型为上述类型之一的数组类型(第 10 节)。

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

这是动态 url 模式的替代方案。