2013-10-16 151 views
0

即時通訊使用彈簧我的Java Web應用程序。該網站已經變得更大,我想設置一些配置。春天java xml配置

我一直在研究和碰到像文件生成器工廠的東西,用java config和其他替代spring xml。我不知道從哪裏開始。

即時思考如何在xml(WEB/newConfig.xml)中實現配置並讓它由java bean讀取。基本上我想輸入我的配置值到xml中,並通過java bean加載,這樣我就可以在控制器和jstl中使用它。

我只是在這裏舉一些例子。例如XML配置:

<property name="numberOfCars" value="3" /> 
<property name="webSiteName" value="New Spring Web App" /> 
.... 

和我在java類閱讀:

class Config { 

public getNumberOfCars() { 
    return numOfCars; 
} 

public getWebSiteName() { 
    return webSiteName; 
} 
} 

我應該在哪裏開始,我可以讀到網上資料?

==============================

更新

這裏是我創建的。

applicationContext.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 

<context:property-placeholder location="/WEB-INF/your_prop_file.properties" /> 
<bean id="ConfigMgr" class="org.domain.class.ConfigMgr"> 
<property name="username" value="${username}"> 
</bean> 

</beans> 

you_prop_file.properties

username=hello world name 

ConfigMgr.java

public class ConfigMgr { 
private String username; 

...getter 

...setter 
} 
在我的控制器

,這裏是我做了什麼:

ConfigMgr config = new ConfigMgr(); 
sysout.out.println(config.getUsername()); 

我得到空和我我肯定在這裏錯過了一些東西。我應該在哪裏設置用戶名值到ConfigMgr類?

+1

閱讀[spring documentation](http://docs.spring.io/spring/docs/3.2.4.RELEASE/spring-framework-reference/html/)...它有超過所需的信息 –

+0

要求對於非現場資源而言,關於stackoverflow的話題已經不再。但是,您需要啓動的地方是第5章Spring 3.2.4文檔的IoC容器。 –

+0

確定tks man ..將查看文檔。我似乎違反了這些天的計算器= | – nuttynibbles

回答

0

Spring Java配置是一個較新的特性,允許您使用Java類而不是XML文件來配置Spring應用程序。它只是XML配置的一種替代方案。 XML方式同樣功能豐富。

從我能從你的問題中得出的結果,你想要將params(numberOfCars,webSiteName ..)的硬編碼值移出你的配置文件。

如果是這樣,你不必走得太遠。

只需使用: -

<context:property-placeholder location="classpath:your_prop_file.properties" /> 
在Spring XML文件

和替換像帕拉姆值: -

<property name="webSiteName" value="${website.name}" /> 

你需要在你的classpath中your_prop_file.properties文件,像enteries : -

website.name=New Spring Web App 
+0

hi kumar tks的答覆。即時在這裏新鮮的如此原諒我。我應該在哪裏添加?在servlet.xml中,還應該在哪裏放置這個屬性文件?在WEB-INF或資源目錄中? – nuttynibbles

+0

應該添加到你的spring xml配置文件(例如applicationContext.xml)中。 將.properties文件放在包含在類路徑中的任何源文件夾中。 –

+0

嘿庫馬爾,我輸入了我的更新。請參閱上文。即時通訊不知道我應該在哪裏設置用戶名的值ConfigMgr類。我什至做得對嗎?我甚至需要實現ConfigMgr.java? – nuttynibbles

0

你是不是注射日您在XML文件中創建的e ConfigMgr bean。
你在做什麼是你正在控制器中創建一個新的對象,它沒有關於屬性文件的線索。
現在,您可以在控制器內使用@Autowired或通過xml配置注入它。
在基本的彈簧依賴注入的谷歌有很多可用的例子。

+0

雅男人我意識到我不得不使用汽車有線..即時通訊仍然試圖使用j2ee來自開源。哈哈,這是一段旅程。 – nuttynibbles

+0

一旦你得到了它的味道,我會愛上它的.. ..順便說一句,你可以upvote它,讓其他人至少可以得到答案.. – Anubhab