2012-08-01 83 views
1

我在Tomcat 6上部署了基於Java的Web應用程序。我需要將某些屬性設置爲可配置。目前我已經創建了一個config.properties文件,並在靜態屬性對象中加載該文件。在Java Web應用程序中使用可配置的屬性

我想知道是否有其他有效的方法或框架在Java Web應用程序中使用可配置屬性?

+0

即使我用一個靜態類加載從我的屬性文件,我認爲是最好的! – Patton 2012-08-01 05:13:53

+0

我同意@Patton – 2012-08-01 05:22:44

+0

可由誰配置?通過操作?由管理員用戶通過用戶界面? ...? – meriton 2012-08-01 05:26:08

回答

0

試試這個樣本;

這是放置在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"); 

另一框架一起使用的可配置屬性是JSF。這sample是在JSF性質的用途。

+0

我已經在使用這個apporach了。這個應用程序的問題是,無論何時嚮應用程序發出請求(我認爲是錯誤的應用程序),或者我必須將其加載到靜態屬性對象中,並且在文件更改時它都不會更新,我將不得不重新加載應用程序 – orak 2012-08-01 05:52:08

+0

@orak檢查我的編輯帖子。這可能對您有所幫助。 – 2012-08-01 06:53:09

0

另一個選項可能是將一個類的所有常量定義在其中。這將爲您提供一種集中的方式,您可以在其中有效且高效地配置應用程序。

然而,我認爲使用配置文件是最好的選擇,因爲(我不認爲)每改變一次你就必須重新編譯你的代碼。

編輯:看到上面的一些評論,你可以做的將是在你的數據庫中有一個單獨的表,你將能夠存儲所有的常量。然後,您可以通過後端Web界面將此表提供給系統管理員和其他支持人員。

+0

代碼不能在生產環境中重新編譯,集中式類不在此處 – orak 2012-08-01 05:35:44

+0

@orak:我這樣認爲。如果是這種情況,那麼你將不得不繼續使用配置文件,否則,我建議的後端系統。後端系統的優點是不需要訪問機器。 – npinti 2012-08-01 05:39:12

0

企業級解決方案是通過集成框架加載您的配置,如Spring。如果你的應用程序相當小,我不一定會推薦它。

0

與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> 
相關問題