我在Tomcat 6上部署了基於Java的Web應用程序。我需要將某些屬性設置爲可配置。目前我已經創建了一個config.properties文件,並在靜態屬性對象中加載該文件。在Java Web應用程序中使用可配置的屬性
我想知道是否有其他有效的方法或框架在Java Web應用程序中使用可配置屬性?
我在Tomcat 6上部署了基於Java的Web應用程序。我需要將某些屬性設置爲可配置。目前我已經創建了一個config.properties文件,並在靜態屬性對象中加載該文件。在Java Web應用程序中使用可配置的屬性
我想知道是否有其他有效的方法或框架在Java Web應用程序中使用可配置屬性?
試試這個樣本;
這是放置在com.package中的示例Resource.properties文件;
name=John
[email protected]
description=John is a Java software developer
並且訪問喜歡這個;
private static final String PROPERTIES_FILE = "com/package/Resource.properties";
Properties properties = new Properties();
properties.load(this.getClass().getResourceAsStream(PROPERTIES_FILE));
String name = props.getProperty("name");
String email = props.getProperty("email");
String description = props.getProperty("description");
我已經在使用這個apporach了。這個應用程序的問題是,無論何時嚮應用程序發出請求(我認爲是錯誤的應用程序),或者我必須將其加載到靜態屬性對象中,並且在文件更改時它都不會更新,我將不得不重新加載應用程序 – orak 2012-08-01 05:52:08
@orak檢查我的編輯帖子。這可能對您有所幫助。 – 2012-08-01 06:53:09
另一個選項可能是將一個類的所有常量定義在其中。這將爲您提供一種集中的方式,您可以在其中有效且高效地配置應用程序。
然而,我認爲使用配置文件是最好的選擇,因爲(我不認爲)每改變一次你就必須重新編譯你的代碼。
編輯:看到上面的一些評論,你可以做的將是在你的數據庫中有一個單獨的表,你將能夠存儲所有的常量。然後,您可以通過後端Web界面將此表提供給系統管理員和其他支持人員。
企業級解決方案是通過集成框架加載您的配置,如Spring。如果你的應用程序相當小,我不一定會推薦它。
與Spring框架加載性能:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:configuration.properties"></property>
</bean>
<!-- Here is configutaion for connection pool -->
<!-- Those ${} properties are from the configuration.properties file -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${db.driver}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.user}"/>
<property name="password" value="${db.pass}"/>
</bean>
</beans>
即使我用一個靜態類加載從我的屬性文件,我認爲是最好的! – Patton 2012-08-01 05:13:53
我同意@Patton – 2012-08-01 05:22:44
可由誰配置?通過操作?由管理員用戶通過用戶界面? ...? – meriton 2012-08-01 05:26:08