Java新手,我正在尝试在.NET中找到web.config应用程序设置的等效项。
到目前为止,我找到了类似这样的例子:
Properties props = new Properties();
FileInputStream fis = new FileInputStream("c:/appSettings.properties");
props.load(fis);
但是,我知道.NET缓存web.config文件并插入对Configuration.AppSettings[x]
的调用并不昂贵。我正在寻找一个等效的解决方案。因此,我可以通过页面加载多次调用应用程序设置。
例如:
<link href="<%= ResolveUrl("~/css/main.css?ver=" + Configuration.AppSettings["version"]) %>" rel="Stylesheet" type="text/css" media="screen" />
我可以创建一个可以做等效的类,但如果已经存在某些东西,我不想重新发明轮子。
答案 0 :(得分:2)
.NET的Web.config
的Java等价物是web.xml
,它是Java EE webapps的部署描述符。
在web.xml
中,您可以设置上下文参数,您可以通过servlet或JSP中的类ServletContext
访问这些参数。例如:
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.mycompany.myapp.SomeServlet</servlet-class>
</servlet>
<context-param>
<param-name>myparam</param-name>
<param-value>hello</param-value>
</context-param>
在JSP中:
// 'application' is an implicit variable available inside JSPs
// that refers to the ServletContext
String value = application.getInitParameter("myparam");
答案 1 :(得分:0)
您也可以在web.xml中使用init-param。我从{Clouder Endpoint的https://cloud.google.com/appengine/docs/java/endpoints/required_files
示例中得到了这个<servlet>
<servlet-name>SystemServiceServlet</servlet-name>
<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value>com.example.helloendpoints.Greetings</param-value>
</init-param>
</servlet>
Getting the init parameters in a servlet帖子的另一个例子显示: 访问在DD中定义的servlet中的servlet init参数:
getServletConfig().getInitParameter("name");
答案 2 :(得分:0)
https://commons.apache.org/proper/commons-configuration/ apache commons配置是最佳选择。
自动重新加载 属性文件的一个常见问题是在文件更改时处理文件的重新加载。示例代码位于以下位置:
PropertiesConfiguration config = new
PropertiesConfiguration("usergui.properties");
config.setReloadingStrategy(new FileChangedReloadingStrategy());