SPRING

DI XML / Collection Wiring (property 방식)

nang. 2019. 3. 19. 01:37
반응형
SMALL

- Bean property가 Collection type인 경우

- DI 설정 시 collection 객체를 직접 정의하여 주입

- 주로 여러개의 객체를 주입할 때 사용!



- collection 정의

<list></list> : 똑같은 원소 2번 이상 가능

<set></set> : 중복 불가능. 알아서 제거

<map></map> : name, value

<props></props>

- <property>의 하위 엘리먼트로 사용

<property>

<list> ... </list>

<property>



- collection 원소 정의

<value>

<ref>

- <list> 등의 하위 엘리먼트로 사용

<property>

<list>

<value>nang</value>

</list>

<property>








# List Type

- xml에서 list인지 set인지 정하고 .java에서는 Collection<> 써주기

- 중복 참조 가능

- 클래스에서(.java) 밑의 경우의 타입으로 선언된 경우에만 사용 가능

// Collection

Collection<Instrument> instruments;

// List

List<Instrument> instruments;

// 배열

Instrument[] instruments;




# Set Type

- 중복 불가

- 클래스에서(.java) 밑의 경우의 타입으로 선언된 경우에만 사용 가능

// Collection

Collection<Instrument> instruments;

// Set

Set<Instrument> instruments;




# Map Type

- 클래스에서 Map<String, Instrument> instruments; 이런 식으로 Map 타입 프로퍼티 선언이면..

- xml에서는

<property name="instruments"> ==> 세터 이름이 setInstruments

<map>

<entry>

<key><value>GUITAR</value></key> // 자식 엘리먼트로 표현 방법

<ref bean="harmonica" />

</entry>


<entry key="HARMONICA" value-ref="guitar" /> // 속성으로 표현 방법

<entry key="CYMBAL" value-ref="cymbal" />     // 속성으로 표현 방법

</map>

</property>




# Properties Type

- Iterator....?

- private Properties instruments; // Properties 타입의 프로퍼티 선언

- key 와 value가 둘다 String인 맵이다.

- 주로 시스템 환경 변수 등 설정 정보(상황에 따라 변경되는 값)를 저장하기 위한 용도로 사용됨

- xml에서는

<property name="instruments">

<props>

<props key="GUITAR">STRUM STRUM</props> // 이게 즉 value임 근데 맵의 value가 아니라... 그 value..ㅎ

</props>

</property>

반응형
LIST

'SPRING' 카테고리의 다른 글

Auto-wiring  (0) 2019.03.25
DI XML / SpEL (property 방식)  (0) 2019.03.19
DI XML / 의존 관계 설정 2 (property 방식)  (0) 2019.03.19
DI XML / 의존 관계 설정 1 (생성자 방식)  (0) 2019.03.18
Spring Container  (0) 2019.03.18