티스토리 뷰


  1   콜렉션타입 프로퍼티 설정 - 2 . Map



 Map타입의 프로퍼티를 설정하는 경우에는 <map>태그를 사용한다.


위 SpringTest 클래스는 Map타입의 items 프로퍼티를 가지고 있다. 이때 items에 Map타입의 값을 전달하려면 <map>태그를 사용한다.


 <entry>태그는 Map에 저장될 key와 value를 나타낸다. 이때 <key></key>태그 사이에 위치할수 있는 태그는 <ref>,<bean>,<value>,<null>,<list>,<map> 등 태그가 위치 할 수 있으며 값태그에도 <key>태그와 동일한 태그들이 위치할 수 있다. 예를 들어 키와 값의 타입이 모두 String 이라면 키태그와 값태그 모두 <value>태그를 사용하여 값을 전 달 할 수 있게된다. 만약 다른 데이터 타입이라면 <list>태그의 경우와 같이 각각의 태그에 데이터타입을 명시해주면 된다.


 또한 위의 <map>태그를 보면 내용에 비해 코드의 분량이 상당히 많은 것을 알 수 있다. 스프링에서는 이러한 코드를 더욱 간단하게 구현할 수 있는 방법을 제공하고 있다.


 래퍼타입이나 String을 키나 값에 할당할 때에는 key속성과 value속성을 사용하고, 빈 객체를 참조 할때에는 key-ref 속성과, value-ref 속성을 사용하면 된다.


 앞서 <list>태그에서처럼 제너릭을 사용하지 않은경우 래퍼타입을 List에 저장하려면 value-type속성을 이용하여 값의 타입을 지정해줄 필요가 있었듯이, <map>태그 역시 마찬가지로 제너릭을 사용하지 않으면 <map>태그에 데이터 타입을 명시해 주어야 한다.






댓글