반응형
스프링의 애플리케이션 컨텍스트는 XML에 담긴 DI정보를 활용 할 수 있다.
DI 정보가 담긴 XML 파일은 <beans>를 루트 엘리먼트로 사용한다.
<beans>는 이름에서도 알 수 있듯이 여러개의 <bean>을 정의 할 수 있다.
아래의 그림처럼 http://acet.pe.kr/120 에서의 @configuration과 @bean을 각 @configuration을 <beans>
@bean을 <bean>이라고 대응해서 생각하면 더 쉬울 것 이다.
[참고 그림]
클래스 설정과 xml설정의 대응항목
ex) connectionMaker()메소드의 <bean> 태그 전환
@Bean --------------------------------> <bean
pubilc ConnectionMaker
connectionMaker(){ -------------------> id="connectionMaker"
return new DConnectionMaker(); ----> class="springbook...DConnectionMaker" />
}
※ <property> 태그를 사용해 의존 오브젝트와의 관계를 정의 해보자.
<property> 태그는 name과 ref라는 두개의 애트리뷰트를 갖는다.
name은 애트리뷰트의 이름이다. 이 프로퍼티 이름으로 수정자 메소드를 알 수 있다.
ref는 수정자 메소드를 통해 주입해줄 오브젝트 빈 이름이다.
ex) userDao.setConnectionMaker(connectionMaker()); 를 아래와 비교해보라.
<property name="connectionMaker" ref="connectionMaker" />
<property> tag를 <baen> tag안에 넣어주면 된다.
ex)
<bean id="userDao" class="springbook.dao.UserDao">
<property name="connectionMaker" ref="connectionMaker" />
</bean>
이첨럼 <bean> tag를 이용해 @Bean 메소드를 모두 xml로 변환 했다.
마지막으로 <beans> tag로 감싸주면 된다.
ex)
<beans>
<bean id="connectionMaker" class="springbook.user.dao.DConnectionMaker" />
<bean id="userDao" class="springbook.dao.UserDao">
<property name="connectionMaker" ref="connectionMaker" />
</bean>
</beans>
※ <property> tag의 name과 ref는 그 의미가 다르므로 이름이 같더라도 어떤 차이가 있는지 구별 할 수 있어야 한다.
name 애트리뷰트는 DI에 사용할 수정자 메소드의 프로퍼티 이름이며, ref 애트리뷰트는 주입할 오브젝트를 정의한 빈의 ID(DI 받을 빈을 지정) 이다. 보통 프로퍼티이름과 DI되는 빈의 이름이 같은 경우가 많다.
DI 정보가 담긴 XML 파일은 <beans>를 루트 엘리먼트로 사용한다.
<beans>는 이름에서도 알 수 있듯이 여러개의 <bean>을 정의 할 수 있다.
아래의 그림처럼 http://acet.pe.kr/120 에서의 @configuration과 @bean을 각 @configuration을 <beans>
@bean을 <bean>이라고 대응해서 생각하면 더 쉬울 것 이다.
[참고 그림]
클래스 설정과 xml설정의 대응항목
자바 코드 설정정보 | XML 설정정보 | |
빈 설정파일 | @Configuration | <beans> |
빈의 이름 | @Bean methodName() | <bean id="methodName" |
빈의 클래스 | return new BeanClass(); | class="a,b,c...BeanClass"> |
ex) connectionMaker()메소드의 <bean> 태그 전환
@Bean --------------------------------> <bean
pubilc ConnectionMaker
connectionMaker(){ -------------------> id="connectionMaker"
return new DConnectionMaker(); ----> class="springbook...DConnectionMaker" />
}
※ <property> 태그를 사용해 의존 오브젝트와의 관계를 정의 해보자.
<property> 태그는 name과 ref라는 두개의 애트리뷰트를 갖는다.
name은 애트리뷰트의 이름이다. 이 프로퍼티 이름으로 수정자 메소드를 알 수 있다.
ref는 수정자 메소드를 통해 주입해줄 오브젝트 빈 이름이다.
ex) userDao.setConnectionMaker(connectionMaker()); 를 아래와 비교해보라.
<property name="connectionMaker" ref="connectionMaker" />
<property> tag를 <baen> tag안에 넣어주면 된다.
ex)
<bean id="userDao" class="springbook.dao.UserDao">
<property name="connectionMaker" ref="connectionMaker" />
</bean>
이첨럼 <bean> tag를 이용해 @Bean 메소드를 모두 xml로 변환 했다.
마지막으로 <beans> tag로 감싸주면 된다.
ex)
<beans>
<bean id="connectionMaker" class="springbook.user.dao.DConnectionMaker" />
<bean id="userDao" class="springbook.dao.UserDao">
<property name="connectionMaker" ref="connectionMaker" />
</bean>
</beans>
※ <property> tag의 name과 ref는 그 의미가 다르므로 이름이 같더라도 어떤 차이가 있는지 구별 할 수 있어야 한다.
name 애트리뷰트는 DI에 사용할 수정자 메소드의 프로퍼티 이름이며, ref 애트리뷰트는 주입할 오브젝트를 정의한 빈의 ID(DI 받을 빈을 지정) 이다. 보통 프로퍼티이름과 DI되는 빈의 이름이 같은 경우가 많다.
반응형
'OpenSource > Spring' 카테고리의 다른 글
[Spring 환경 구축] step 02 - MySQL을 깔아보자~~~(Windows) (0) | 2012.10.28 |
---|---|
[Spring 환경 구축] step 01 - 스프링 STS 를 깔아보자^-^ (0) | 2012.10.27 |
Spring Batch (0) | 2012.08.24 |
DI(Dependency Injection) (2) | 2012.08.09 |
IoC(Inversion of Control) (2) | 2012.08.07 |