我想知道是否有可能通过使用属性文件在web.xml
中设置属性。例如web.xml:
<context-param>
<param-name>Map.MyJNDI</param-name>
<param-value>java:comp/env/jdbc/${my.computer}</param-value>
</context-param>
和application.properties
将是:
# My computer's name
my.computer=eniac
答案 0 :(得分:2)
您无法从Properties
文件设置值,但您可以设置属性文件并在运行时读取它。
<context-param>
<param-name>propfile</param-name>
<param-value>myproject.properties</param-value>
</context-param>
然后在运行时读取属性文件。
MyServlet myServlet = new MyServlet();
Properties properties = new Properties();
// get the properties file name
String propfile = myServlet.getInitParameter("propfile");
// load the file
properties.load(getClass().getClassLoader().getResourceAsStream(propfile));
// get the desire properties
Object propName = properties.get("my.computer");
// out.println(propName.toString());
希望这也有助于其他人。
答案 1 :(得分:0)
您不能在web.xml中替换值。
我可以建议一个选项,如果可能的话,只有一个带有值占位符的模板web.xml,并且在每个环境的构建过程中都有一个构建过程中的步骤,它将替换该环境所需属性文件中的必需值。