- 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>
'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 |