코린이의 기술 블로그

의존 관계 / 생성자 인젝션 / Setter 인젝션 본문

Java Web

의존 관계 / 생성자 인젝션 / Setter 인젝션

미늬온 2021. 11. 10. 16:05

 

의존 관계 ? 자동 설정 모드를 통하여 빈을 설정하는 방법 <bean> 요소의 autowire 속성으로 "모드" 지정

  1. byName : 프로퍼티 이름에 의해 자동 설정, 빈의 "name","id" 가 있으면 자동 설정
  2. byType : 프로퍼티 설정에 의해 자동 설정, 프로퍼티의 타입과 일치하는 빈의 "name","id" 가 있으면 자동 설정
  3. constructor : 생성자 파라메타 타입을 이용한 자동 설정, 의존 관계 자동 설정
  4. autodetect : constructor 먼저 적용하고, constructor적용 할 수 없는 경우  byType 을 이용한 의존 관계 자동 설정
  5. no : 기본 값, 자동 설정하지 않는다.

자동 설정의 단점 ? 

명시적인 설정보다 정확하지 않다.

단일 값을 갖는 의존성이 모호할 경우 임의로 처리되지 않으며, 유일한 빈 정의를 찾지 못하면 예외가 발생합니다.

 

의존성 관계 ? 

객체와 객체의 결합 관계

 

생성자 인젝션 ? 

기본적으로 매개변수가 없는 기본 생성자를 호출 합니다.

하지만 컨테이너가 기본 생성자 말고 매개변수를 가지는 다른 생성자를 호출 하도록 설정할 수 있는데 이기능을 이용하여, 생성자 인젝션을 처리 합니다.

(1) 다중 변수 매핑 : 초기화 해야 할 변수가 여러개이면, 여러개의 값을 한꺼번에 전달

(2) 의존관계 변경 : 유지 보수 과정에서 의존성 주입

 

Setter 인젝션 ? Setter 메서드를 호출하여, 의존성 주입 처리하는 방법입니다.

(1) Setter 인젝션 기본 : 기본 생성자 반드시 필요

(2) p 네임스페이스 사용

  p:변수명-ref="참조 객체 아이디나 이름"

  p:변수명="설정 값"

 

Collection ?

(1) List 타입 매핑 : <list>태그 사용하여 설정

(2) Set 타입 매핑 : <set> 태그 사용하여 설정

(3) Map 타입 매핑 : 특정 key로 데이터 등록, 사용 <map>태그 사용하여 설정

(4) Properties 타입 매핑 : key=value 데이터 저장, 사용 <props> 엘리먼트 사용 설정

 

 

728x90

'Java Web' 카테고리의 다른 글

스프링 AOP  (0) 2021.11.12
스프링 어노테이션  (0) 2021.11.11
DI(Dependency Injection)  (0) 2021.11.09
스프링 컨테이너  (0) 2021.11.08
IoC(Inversion of Control) 컨테이너  (0) 2021.11.07
Comments