'Spring/Core'에 해당되는 글 19건

  1. 2007.12.09 Collections 사용하기
  2. 2007.12.08 Bean 상세화된 설정
  3. 2007.12.07 의존성 삽입하기
  4. 2007.12.05 BeanFactory 사용하기

기존의 bean 프로퍼티 설정과 거의 비슷합니다.
<list/>, <set/>, <map/>, <props/> 요소를 이용해 값을 설정 합니다.
자주 사용하는 java.util.List와 java.util.Map을 이용한 예제를 보겠습니다.
먼저 친구목록(List)와 주소(Map)을 가지고 있는 AddressBook 클래스 입니다.
그리고 설정파일 입니다.

실행 결과

홍길동 서울시 강남구 도곡동 타워팰리스 101동 101호
임꺽정 서울시 강남구 도곡동 타워팰리스 202동 202호
슈퍼맨 서울시 강남구 도곡동 타워팰리스 303동 303호
배트맨 서울시 강남구 도곡동 타워팰리스 404동 404호


Collection 병합
Collection 요소(<list/>, <set/>, <map/>, <props/>)에 merge속성을 true로 주면 됩니다.
그리고 새로운 속성인 parent가 등장 하는데 이름에서 알 수 있듯이 부모 bean을 지정합니다.부모 bean을 지정하면 부모 bean의 설정 정보들이 자식 bean에게 상속이 됩니다. 만약 자식 bean에 같은 프로퍼티에 대한 설정이 있다면 자식 bean의 설정 값으로 오버라이딩 됩니다. 만약 merge 속성을 true로 설정 하지 않는다면 병합이 이루어 지지 않고 무조건 자식 bean에서 정의한 값들만 주입 될 것입니다.
아래 예제 에서는 부모 bean의 홍길동에 대한 값이 자식 bean에서 오버라이딩 된 경우 입니다.

실행결과

노숙자 서울역
홍길동 서울시 강남구 도곡동 타워팰리스 101동 101호
임꺽정 서울시 강남구 도곡동 타워팰리스 202동 202호
슈퍼맨 서울시 강남구 도곡동 타워팰리스 303동 303호
배트맨 서울시 강남구 도곡동 타워팰리스 404동 404호

'Spring > Core' 카테고리의 다른 글

간략화 된 설정  (0) 2007.12.10
null 값 다루기  (0) 2007.12.09
Collections 사용하기  (0) 2007.12.09
Bean 상세화된 설정  (0) 2007.12.08
의존성 삽입하기  (0) 2007.12.07
BeanFactory 사용하기  (0) 2007.12.05
Posted by 째코

댓글을 달아 주세요

프로퍼티가 기본형 일 때
기본형 값을 지정 할 때는 <value /> 요소를 사용합니다.
타입을 명시해도 되지만 하지 않으면 자동으로 변환 됩니다.


다른 Bean의 참조

아래 두 가지 설정은 동일하지만 약간 다릅니다.


<ref /> 요소의 bean과 local의 차이는 targetBean의 위치 입니다.
bean은 모든 문서에서 찾으며 local은 현재 문서에서만 찾습니다.


idref 요소
아래 두 가지 설정은 동일하지만 약간 다릅니다.


idref는 client bean의 생성 시점에서 theTargetBean 이 bean으로 등록되어 있는지 유효성 검사를 해줍니다. 만약 두번째 처럼 value 요소를 사용 할 때 잘못된 값을 설정 했다면 실제로 그 값이 사용될 시점에 에러가 발견될 것 입니다.

생성자의 인자
생성자의 인자는 setter 메소드의 인자와는 달리 2개 이상이 될 경우가 있습니다.
index속성을 이용해 순서를 명시적으로 설정 할 수 있습니다.
타입이 같은 인자가 여러개인 경우의 모호함도 해결 됩니다.


내부 Bean
자바의 익명클래스와 같습니다.
<property /> 요소와 <constructor-arg /> 요소의 자식 요소로써 <bean />요소를 사용 하는 것을 말합니다. 다른 bean에서 더이상 참조될 수 없으므로 id속성은 무시 됩니다.
또한 언제나 prototype 범위로 생성 됩니다.


id속성이 무시 되기 때문에 id속성을 명시 할 경우라도 내부 bean 내에서 조차
사용 할 수 없는 문제가 발생 하는군요..

'Spring > Core' 카테고리의 다른 글

간략화 된 설정  (0) 2007.12.10
null 값 다루기  (0) 2007.12.09
Collections 사용하기  (0) 2007.12.09
Bean 상세화된 설정  (0) 2007.12.08
의존성 삽입하기  (0) 2007.12.07
BeanFactory 사용하기  (0) 2007.12.05
Posted by 째코

댓글을 달아 주세요

의존성 삽입하기

Spring/Core 2007. 12. 7. 01:33

예제로 사용될 클래스 입니다.

Setter 삽입

Setter 삽입은 기본형, 참조형을 따지지 않습니다.
만약 인자가 기본형이라면 그 타입에 맞게 자동으로 변환 됩니다.
XML 설정 파일 입니다. (루트 태그 생략)

마지막으로 테스트 파일 입니다.

출력 결과는 다음과 같습니다.

아빠
50
세대주는 본인 입니다.
자식
20
세대주는 아빠 입니다.


생성자 삽입

생성자 삽입은 인자가 1개, 인자가 2개이상(참조형과 기본형 복합) 인 경우가 있습니다. 예제에 사용될 클래스는 인자가 2개 이상이면서 참조형과 기본형이 복합적으로 존재 합니다.
XML 설정 파일입니다. (루트 태그 생략)
Setter 삽입의 설정파일에서 child 빈 설정만 수정 했습니다.


테스트 파일과 출력 결과도 Setter 삽입과 같습니다.

'Spring > Core' 카테고리의 다른 글

간략화 된 설정  (0) 2007.12.10
null 값 다루기  (0) 2007.12.09
Collections 사용하기  (0) 2007.12.09
Bean 상세화된 설정  (0) 2007.12.08
의존성 삽입하기  (0) 2007.12.07
BeanFactory 사용하기  (0) 2007.12.05
Posted by 째코

댓글을 달아 주세요

BeanFactory의 희생양(?)이 될 두개의 클래스 입니다.

그리고 BeanFactory가 희생양(?) 들을 어떻게 요리할지 결정하는 설정파일 입니다.

마지막으로 BeanFactory의 사용 방법 입니다.
3가지 방법이 있으며 첫번째 방법으로 생성된 factory를 사용하고 있습니다.

실행 하면 다음과 같은 결과가 출력 됩니다.

Bar가 생성 되었습니다.
Foo가 생성 되었습니다.
저는 Bar 입니다.
저는 Foo 입니다.
저는 Bar 입니다.

'Spring > Core' 카테고리의 다른 글

간략화 된 설정  (0) 2007.12.10
null 값 다루기  (0) 2007.12.09
Collections 사용하기  (0) 2007.12.09
Bean 상세화된 설정  (0) 2007.12.08
의존성 삽입하기  (0) 2007.12.07
BeanFactory 사용하기  (0) 2007.12.05
Posted by 째코

댓글을 달아 주세요