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이 담당

+ Recent posts