a C*_*CVn 2 java servlets web-config configuration-files
在ASP.NET中,web.config可以保存应用程序范围的设置.是否有相应的文件(位于外侧war或jar为Java EE Servlet的档案)?
我需要的是指出一个配置文件的地方,该配置文件当前包含四个属性,这四个属性反过来一起导致存储其余数据和配置的数据库.(服务器,数据库,用户名和密码.)这些值需要易于更改,无需重新打包和重新部署整个应用程序,因此配置文件,但硬编码应用程序中配置文件的路径(即使它是一个常量)似乎远非最佳.
任何提示?我已经尝试了谷歌,但发现它似乎很少相关 - 而我所发现的东西看起来似乎过于设计,以满足我的需求.
在ASP.NET中,有web.config可以保存应用程序范围的设置.Java EE Servlet是否有相应的文件(驻留在war或jar存档之外)?
那就是web.xml.您可以将设置定义为<context-param>条目.
<context-param>
<param-name>foo</param-name>
<param-value>bar</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
它是可用的ServletContext#getInitParameter().随后ServletContext可以在任何地方使用.
String foo = getServletContext().getInitParameter("foo"); // Contains "bar"
Run Code Online (Sandbox Code Playgroud)
您也可以通过EL访问它.
#{initParam.foo} <!-- prints "bar" -->
Run Code Online (Sandbox Code Playgroud)
我需要的是指出一个配置文件的地方,该配置文件当前包含四个属性,这四个属性反过来一起导致存储其余数据和配置的数据库.(服务器,数据库,用户名和密码.)这些值需要易于更改,无需重新打包和重新部署整个应用程序,因此配置文件,但硬编码应用程序中配置文件的路径(即使它是一个常量)似乎远非最佳.
根据重点,我将使用属性文件用于此特定目的,然后将其放在WAR外部的路径中.您只需将此路径添加到Java运行时类路径即可.然后您可以将其作为类路径资源获取:
Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("filename.properties"));
// ...
Run Code Online (Sandbox Code Playgroud)
但是,由于服务于数据库连接的唯一目的,您最好使用由Qwerky回答的servletcontainer管理的数据源.您可能需要配置的只是数据源名称.
| 归档时间: |
|
| 查看次数: |
1886 次 |
| 最近记录: |