2013-07-25 3 views
0

나는 나의의 context.xml에 다음과 같은 한 : 나는 정적 스프링 애플리케이션 컨텍스트를 통해 POJO이 빈을 검색하고가져 특성/값

<bean id="myBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
      <value>file:${specific.dir}/file1.properties</value> 
      <value>file:${specific.dir}/file2.properties</value> 
      <value>file:${specific.dir}/file3.properties</value> 
      <value>file:${specific.dir}/file4.properties</value> 
     </list> 
    </property> 
</bean> 

, 디버거를 통해가는이 않습니다. 날이 POJO의 목록에있는 네 개의 값 및 속성 이름을 검색하는

어쨌든이 있나요?

public class StaticSpringApplicationContext implements ApplicationContextAware { 
private static ApplicationContext CONTEXT; 

    public void setApplicationContext(ApplicationContext context) throws BeansException { 
    CONTEXT = context; 
    } 

    public static Object getBean(String beanName) { 
    return CONTEXT.getBean(beanName); 
    } 

} 

을 내가 가지고 내 POJO이 다음 :

StaticSpringApplicationContext.getBean("myBean"); 

어떤 도움이나지도

이 크게 감사합니다 다음과 같이

내 staticSpringApplicationContext이다. 제가 인정하는 것보다 봄에 더 많은 어려움을 겪었습니다.

답변

0

당신은 bean 정의에 따라 달라집니다이 작업을 수행 할 수 있는지 여부. Spring이 값을 삽입 할 때까지 setLocations() 메쏘드가 있어야한다 (또는 정확하게 주석을 달아야한다).

당신은 존재하는 경우 빈에 getter 메소드를 사용하여 값을 검색합니다. 그렇지 않으면 빈을 수정해야합니다. 당신은 봄 @Value 주석을 사용할 수 있습니다

1

이 같은 매끄러운 :

@Component 
public MyClass { 

    @Value("${some.prop.name1}") 
    private String myProp1; 

} 

file1.properties : 나는 그것이 도움이 될 것입니다 희망

some.prop.name1=value1 

합니다. 행운을 빕니다.

관련 문제