property-placeholder에서로드 된 속성을 사용하여 컨텍스트 가져 오기를 동적으로 만들 수 있습니까?가져 오기/Bean 참조의 속성 자리 표시 자
<context:property-placeholder location="classpath*:/enterprise.properties"/>
<import resource="classpath*:/Fsb${jdbc.ctxType?:Jdbc}-context.xml"/>
등록
jdbc.ctxType=JTA
그래서이 방법은 내가 속성을 기반으로로드 컨텍스트 파일의 유형을 변경할 수 있습니다 파일.
또한 bean ref name을 동적으로 만들기 위해 동일한 작업을 수행 할 수 있습니까?
<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
:
----------------------
나는 다음과 같은 항목과 속성 파일을 만든 그런I 스프링 컨텍스트 파일에서 다음과 같은 구성을 가지고 :
<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으로 설정해야한다고 말합니다.
내가 뭘 잘못하고 있다고 생각하나요?
제안에 감사드립니다 ... 나는 수입 정보를보고 있습니다. 속성을 사용하는 빈 참조에 관해서는, 내가하려고하는 것에 대한 예제를 보여주기 위해 질문을 업데이트했습니다 ... 그것은 나를 위해 작동하지 않는 것 같습니다. –
답변을 찾은 것 같습니다. 나는 구문이 있다고 생각 했는가? : 디폴트 값. 그러나 작동 한 구문은 $ {addressLookupSearchService.sib : Dao} 였지만 물음표는 사용하지 않았습니다. 이 JIRA를 기반으로 - https://jira.springsource.org/browse/SPR-4785. –
잘 작동하는 것이 좋습니다. 업데이트 질문으로 인해 질문의 초점이 조금 바뀌 었습니다 - 먼저 디폴트 값을 사용하여 특별한 문제를 알지 못했습니다. – FrVaBe