2015-04-08 149 views
0

我正在與Spring合作,我想用依賴性注入來啓動我的服務(模型)。我的服務期望一個Propertie對象,其中包含數據庫的url,user,password,ssl,sslfactory參數。如果這仍然可以使用依賴注入來完成的話,我還是懷念。用Spring注入屬性?

所以我的構造是這樣的:Service(Properties propertie) 在我的控制器我有一個私人的現場服務:

@Autowired 
private Service service; 

,現在我想在它注入正確的屬性。

<bean id="service" class="service.Service"> 
     <constructor-arg > 
      <value>?</value> 
     </constructor-arg> 
    </bean> 

我不知道是否可以這樣做,任何人都可以幫助我嗎?提前致謝。

+0

您是否僅使用xml方法? –

+0

是的,我想是的,還有什麼可以使用的? (我是Spring的新手) – Bosiwow

+0

除了xml配置,您還可以使用annotations和@Autowired與來管理依賴關係。請看看春天的文檔,它寫得很好。 –

回答

0

試試這個:

<util:properties id="props" location="classpath:props.properties" /> 

然後:

@Value("${props.foo}") 
public String foo; 

這將直接注入性的領域。 您需要使用註釋配置。

或者如果你喜歡純XML那就試試這個:

<bean id="service" class="service.Service"> 
    <constructor-arg > 
     <value>#{props['foo']}</value> 
    </constructor-arg> 
</bean> 
+0

將嘗試此:)並選擇它作爲正確答案作品。 – Bosiwow

+0

#{props ['foo']},foo指向哪裏?還有,我的database.properties文件應該放在哪裏? Uder web.xml? – Bosiwow

+0

它指向屬性對象的id「props」屬性名稱foo,它應該位於classpath中的任何位置。例如在WEB-INF/classes文件夾下。 或者在src/resources中,如果你使用的是maven。 –

0

正確的方式做,這是使用PropertyPlaceholderConfigurer。