2010-01-19 4 views
5

@Autowired를 통해 PropertyPlaceholder의 속성을 빈에 추가 할 수 있습니까? 스프링 3.0 (내가 마일스톤 3에서 생각하는) 당신이 @Value을 ("$ 사용할 수 있습니다에서@Autowired 및 PropertyPlaceholder

<context:component-scan base-package="..."/> 

답변

9

{foo.bar : 콩이로드되기 때문에 나는 XML-상황 설정에이 방법을 주입 할 수 없습니다 } ") PropertyPlaceholder의 속성에 액세스합니다.

+0

당신이 나에게 이것에 대한 예를 들어 줄 수 있습니까? 나는 봄 3 rc3을 사용하고 있는데, 이렇게하면 (예 : @Value ("$ {foo.bar}")) 내 속성은 값 "foo.bar"를 얻습니다. – woezelmann

+2

예, 속성 자리 표시자를 가지고 있다고 가정 해 봅시다. '' 당신은'app.properties'에서'foo.bar' 키로 속성의 값을 당신 bean에 넣을 수 있습니다 : 'class MyBean { @Value ($ { "foo.bar"} private 문자열 값 } – semberal

+0

서식을 사용하여 불편을 드려 죄송합니다. – semberal

6

스프링 2.5 방법 :

@Component 
public class Foo { 
    @Autowired 
    @Qualifier("myFlag") 
    private Boolean flag; 
    /* ... */ 
} 

하고 상황에 맞는

<context:component-scan base-package="..."/> 
<context:property-placeholder location="classpath:app.properties"/> 
<!-- the flag bean --> 
<bean id="myFlag" class="java.lang.Boolean"> 
    <constructor-arg value="${foo.bar}"/> 
</bean> 

건배

+0

+1, 조금 덜 자세하게'@Resource (name = "myFlag")' – skaffman

관련 문제