2016-07-06 4 views
0

내 응용 프로그램 요구 사항은 런타임에 응용 프로그램 빈을 수동으로 작성한 다음 응용 프로그램 컨텍스트에 추가해야한다는 것을 의미합니다.Spring : 응용 프로그램 컨텍스트 외부에서 PropertyPlaceholderConfigurer 지원 사용

이 콩은 타사 라이브러리에 속하므로 수정할 수 없습니다. 예 : 이 콩을 만드는 TibjmsConnectionFactory

그래서 내 공장 클래스 이름을 설정하는 Properties 객체, 비밀번호, connectionTimeouts 등을 제공 할 필요가

이상적 그래서 내가 할 Spring의 속성 지원을 사용하고 싶습니다

또한, 내 전체 ApplicationContext

PropertyPlaceholderConfigurer에 의해 사용되는 동일한 등록되지 않습니다 내 공장 클래스에 제공되는 Properties 방법 등을 할 문자열을 정수로 변환 할 필요가 없습니다 나는 이것을 성취합니까 아니면 가능합니까?

public class MyCustomFactoryStrategy { 
    @Override 
    public TibjmsConnectionFactory create(Properties properties) { 
     TibjmsConnectionFactory connectionFactory = new TibjmsConnectionFactory(); 
     connectionFactory.setServerUrl(properties.getProperty("emsServerUrl")); // this is a string 
     connectionFactory.setConnAttemptCount(new Integer(properties.getProperty("connAttemptCount"))); // this is an integer 
     ... 
     return connectionFactory; 
    } 

답변

0

이 게시물을 살펴보십시오. 나는 그것이 당신이 필요로하는 것일 수도 있다고 생각합니다.

[PropertyPlaceholderConfigurer not loading programmatically

[1] :

+0

그래서 여기에 제안 위 내 공장 대신에 사용자 지정 응용 프로그램 컨텍스트를 만드는 것입니다, 나는 빈 초기화 한 후 다음 나는 그에서 걸릴 수 있습니다 응용 프로그램 컨텍스트 및 내 주요 하나 추가 할 수 있습니까? – DJ180

+0

예 여기에는 두 가지 일이 있습니다. 우선 컨텍스트 핸들을 얻어 프로그래밍 방식으로 구성 할 수 있습니다. 두 번째 요점은 PropertyPlaceHolderConfigurer를 초기화하여 응용 프로그램 외부에서 시스템 속성을 전달할 수 있도록하는 것입니다. –

관련 문제