2012-01-05 2 views
4

빠른 속도로 내 목표를 달성 할 수 있는지 궁금합니다. 스프링 콩의 String에 id의 값을 주입하고 싶습니다. 봄 콩에 xml id 값을 입력하십시오.

내가 한마디에 원하는 것입니다 :

<bean id="matsientst" class="com.matt.Matt"/> 

public class Matt { 
    @Value("#id") 
    String id; 
} 

내가이 필요한 이유는 나는 또한 필요한 우리의 스프링 XML로 구성되어 객체를 많이 가지고있다 DB에서 관리 할 수 ​​있습니다. Spring id는 내가 사용할 수있는 편리한 키이다. 나는 추상적 인 클래스가 ID를 우아하게 가질 수 있도록 추상화했기 때문에 모든 객체를 주입 할 필요가 없다. 이것은 작동합니다. 예를 들어 감사 - 매트

답변

7

그냥 (둘 중 하나를 사용한) BeanNameAware을 구현하고, 봄이 id 또는 name 속성을 제공합니다

public class Matt implements BeanNameAware { 
    private String id; 

    public void setName(String beanName) { 
     this.id = beanName; 
    } 
} 
+0

그게 전부 였어! 감사합니다 – matsientst

+1

하지만 봄 API에 불필요한 의존과 내 코드를 혼란스럽게하지 않을까요? 만약 Spring EL이나 XML 설정 파일에 존재하는 다른 옵션을 사용할 수 있다면, "org.springframework"로 시작하는 것을 전혀 알지 못하게 될 것입니다. – ihadanny

+0

'# {# this.name} '은 다음과 같이 할 수 있습니다. 작동하지만 아직 테스트하지 않았습니다. – deamon