자바5에서 지네릭 타입이 소개됨에 따라, 엄격한 타입의 컬렉션을 사용할 수 있게 되었다. 즉, String 요소들만을 포함하는 컬렉션 타입을 선언할 수 있게 되었다. 만약 bean에 엄격한 타입의 컬렉션을 의존성으로 주입하기 위해 스프링을 사용한다면, 스프링의 타입 변환 지원을 통해 도움을 얻을 수 있다. 스프링의 타입 변환은, 엄격한 타입의 컬렉션 인스턴스가 가진 요소들이 컬렉션에 추가되기 전에 적절한 타입으로 변경시켜준다. 다음 자바 클래스와 bean 정의는 그 방법을 보여준다.
public class SomeClass {
private Map<String, Float> accounts;
public void setAccounts(Map<String, Float> accounts) {
this.accounts = accounts;
}
}
<beans>
<bean id="something" class="x.y.SomeClass">
<property name="accounts">
<map>
<entry key="one" value="9.99" />
<entry key="two" value="2.75" />
<entry key="six" value="3.99" />
</map>
</property>
</bean>
</beans>
something이라는 bean의 accounts 프로퍼티들이 주입될 준비가 끝나면, Map<String, Float>라는 엄격한 타입에 대한 지네릭 정보들이 반영과정에 사용된다. 그래서 스프링의 타입 변환 인프라는 Float 타입이 될 수 있는 다양한 값들을 인식한 후 9.99, 2.75, 3.99와 같은 문자열 값들을 실제 Float 타입의 값들로 변환시켜준다.
'SpringFramework Core - I. IoC 컨테이너 > 4. 의존성' 카테고리의 다른 글
4.2.10. p-namespace를 이용한 XML Shortcut (0) | 2020.03.17 |
---|---|
4.2.9. Null과 Empty인 문자열 값들 (0) | 2020.03.17 |
4.2.7. Collection Merging의 한계 (0) | 2020.03.17 |
4.2.6. Collection 합치기 (0) | 2020.03.17 |
4.2.5. Collections (0) | 2020.03.17 |