我可以使用從屬性佔位符加載的屬性使上下文導入動態嗎?Property for Place/Bean Refs
<context:property-placeholder location="classpath*:/enterprise.properties"/>
<import resource="classpath*:/Fsb${jdbc.ctxType?:Jdbc}-context.xml"/>
屬性文件
jdbc.ctxType=JTA
所以這樣我可以改變一個基於屬性加載的情況下的文件類型。
另外,我可以做同樣的事情,使一個bean ref名稱動態嗎?
<bean id="personBusinessService" class="com.foo.PersonBusinessServiceImpl"
p:personUidDataService-ref="personUidDataService${personUidDataService.sib?:Api}"
p:identifierLookupSearchService-ref="identifierLookupSearchService${identifierLookupSearchService.sib?:Api}"
p:contactPointBusinessService-ref="contactPointBusinessService${contactPointBusinessService.sib?:Api}"
/>
屬性文件
personUidDataService.sib=Stub
周杰倫
--------------------例如更新的屬性參考--- ----------------------
我創建了以下條目的屬性文件:
addressLookupSearchService.sib=DaoMock
然後,我有一個Spring上下文文件如下配置:
<context:property-placeholder location="classpath*:/simple.properties"/>
<!-- EntityManager will be injected into DAO by JPA annotations -->
<bean id="addressSearchDao" class="com.foo.AddressSearchDaoImpl"/>
<bean id="addressSearchDaoMock" class="com.foo.MockAddressSearchDaoImpl"/>
<bean id="addressLookupSearchService" class="com.foo.AddressLookupSearchServiceImpl"
p:baseDao-ref="addressSearch${addressLookupSearchService.sib?:Dao}"/>
而且addressSearch $ {addressLookupSearchService.sib:道}不起作用,它總是默認爲 addressSearchDao的豆ID即使我的財產說它應該設置爲addressSearchDaoMock。
有什麼想法,我做錯了什麼?
感謝您的建議......我正在查看導入信息。至於使用屬性的bean引用,我更新了問題以顯示我正在嘗試做的事情的一個例子......並且它似乎不適合我。 – 2011-03-23 23:16:17
看起來我找到了答案。我認爲語法是?:用於默認值。但是工作的語法是$ {addressLookupSearchService.sib:Dao},沒有問號。基於此JIRA - https://jira.springsource.org/browse/SPR-4785。 – 2011-03-24 03:36:24
現在很好用。您的更新問題稍微改變了問題的焦點 - 我沒有注意到您的特殊問題(使用默認值)。 – FrVaBe 2011-03-24 08:09:56