1. Setter Injection : <property>태그
- Setter 메서드를 통해 의존관계가 있는 Bean을 주입려면 <property> 태그를 사용할 수 있다.
- ref 속성은 사용하면 Bean 이름을 이용해 주입할 Bean을 찾는다.
- value속성은 단순 값 또는 Bean이 아닌 객체를 주입할때 사용
2. Constructor Inection : <constructor-arg> 태그
- Constructor를 통해 의존관계가 있는 Bean을 주입하려면 <constructor-arg>태그 사용
- Constructor 주입방식은 생성자의 파라미터를 이용하기 때문에 한번에 여러 개의 객체를 주입 가능
- 생성자 주입 위한 설정 : index 지정, 파라미터 이름 지정
3. 단순 값(문자열이나 숫자)의 주입(Injection)
- Setter 메서드를 통해 Bean의 레퍼런스가 아니라 단순 값을 주입하려고 할 때는 <property>태그의 value속성을 사용
4. 컬렉션(Collection)타입의 값 주입(Injection)
- Spring은 List, Set, Map, Properties와 같은 컬렉션 타입을 XML로 작성해서 프로퍼티에 주입하는 방법 제공
1) List와 Set 타입
- <list>와 <value> 태그를 이용
- 프로퍼티가 Set타입이면 <list>대신에 <set>을 사용
2) Map타입
- <map>과 <entry> 태그를 이용
5. 프로퍼티(property) 파일을 이용한 설정 방법
- XML의 Bean 설정 메타정보는 애플리케이션 구조가 바뀌지 않으면 자주 변경 안됨
- 일부 설정 정보(DB연결정보)는 애플리게이션이 동작하는 환경에 따라 자주 변경될수 있음(개발, 테스트, 스테이징, 운영 등)
- 변경되는 이유와 시점이 다르다면 분리하는것이 객체지향 설계의 기본 원칙
- 환경에 따라 자주 변경될 수 있는 내용은 properties 파일로 분리하는것이 좋음(key=vlaue)
-> 프로퍼티 파일로 분리한 정보는 ${}(프로퍼티 치환자)을 이용하여 설정
-> ${} 값을 치환해주는 기능은 <context:property-placeholder>태그에 의해 자동으로 등록되는 propertyPlaceHolderConfigureBean이 담당
'개발 기술 이야기 > spring' 카테고리의 다른 글
[Spring 기본 - 6] DI 애플리케이션 작성 (0) | 2021.03.25 |
---|---|
기본 스프링프로젝트 만들기 2/2 (0) | 2021.03.23 |
기본 스프링프로젝트 만들기 1/2 (0) | 2021.03.23 |
[Spring 기본 - 4] jUnit와 Spring-Test (0) | 2021.03.22 |
[Spring 기본 - 3] IOC와 DI (0) | 2021.03.10 |