Setter Injection : <property> 태그
Consructor Injection : <constructor-arg> 태그
Constructor를 통해 의존관계가 있는 Bean을 주입하려면
<constructor-arg>태그를 사용할 수 있다.
Constructor 주입방식은 생성자의 파라미터를 이용하기 떄문에 한번에 여러 개의 객체를 주입할 수 있다.
생성자 주입을 위한 설정 : Index 지정
컬렉션 (Collection) 타입의 값 주입
Spring은 List, Set, Map, Properties 와 같은 컬렉션 타입을 XML로 작성해서 프로퍼티에 주입하는 방법을 제공한다.
List와 Set 타입 : <list> 와 <value> 태그를 이용
프로퍼티가 set 타입 이면 <list> 대신에 <set>을 사용하면 된다.
Map 타입 :<Map> 과 <entry> 태그를 이용
환경에 따라 자주 변경되는 내용의 분리
*XML의 Bean 설정 메타정보는 애플리케이션 구조가 바뀌지 않으면 자주 변경되지 않는다.
*반면에 프로퍼티 값으로 제공되는 일부 설정정보(예-DataSource Bean이 사용하는 DB 연결정보)는 애플리케이션이 동작하는 환경(개발,테스트,스테이징,운영)에 따라서 자주 바뀔 수 있다.
*변경되는 이유와 시점이 다르다면 분리하는 것이 객체지향 설계의 기본 원칙이다. 설정에도 동일한 원칙을 적용할 수 있다.
*환경에 따라 자주 변경될 수 있는 내용은 properties 파일로 분리하는 것이 가장 깔끔하다 XML처럼 복잡한 구성이 필요 없고 키와 값의 쌍(key=value)로 구성하면 된다.
프로퍼티 파일로 분리한 정보는 ${} (프로퍼티 치환자) 를 이용하여 설정한다.
${ } 값을 치환해주는 기능은 <context:property-placeholder>태그에 의해 자동으로 등록되는 PropertyPlaceHolderConfigurer Bean 이 담당한다.
'프레임워크 > Spring' 카테고리의 다른 글
사용자관리 프로젝트 (0) | 2020.01.08 |
---|---|
Bean 등록 메타정보 구성 전략 및 어노테이션 (0) | 2020.01.08 |
EL 과 JSTL (0) | 2020.01.06 |
Spring MVC (0) | 2020.01.06 |
Spring JDBC (0) | 2020.01.03 |