# 의존 관계 설정 2 - property 방식 = setter 방식 <property>
- setter 메소드 통해 의존 객체 주입
- Bean class에 property에 대한 setter 메소드가 정의되어 있어야 함
---> 그니까 걍 필드건 뭐건 세터 메소드 정의하라는 뜻
- 클래스에(.java) 이 방식이면 생성자는 없어도 되는데 기본 생성자는 있어야 함
ex) public Instrumentalist() {}
- 필드 정의하고 바로 setter
* 효과
- 컨테이너는 property로 전달할 의존 객체(B)를 먼저 생성
(생성자 방식은 A 먼저 생성)...?
- https://conanglog.tistory.com/16?category=320753
- 객체가 먼저 만들어져 있어야(기본 생성자가 있어야하는 이유) property 통해 값을 담아서 전달하고 그게 setter에 갈 수 있다.
==> 생성자 방식과의 차이점
==> 생성자 방식은 동시에, 이 방식은 객체 먼저 생성 후
- 역시 파라미터 마다 각자 <property></property> 해줘야 함
- 주입없이 초기값을 사용하려면 <property> 안해도 되고
- 이름에 맞는 setter로 들어가기때문에 순서 상관 X
# p 네임스페이스를 이용한 설정 = <property> 쓴거랑 같은 효과
- 속성에 쓰는 것이며 p 접두사를 붙인다.
- 순서 상관 X
- <beans> 안에 p 접두사 선언
- 클래스 내의 필드 이름 그대로 가져와서 쓴다
- 나머지는 생성자 방식과 유사함
# 의존 관계 설정 3 - Anonymous bean 객체 생성 및 주입
- 생성자나 프로퍼티에서 ref 써서 외부 객체 지정했잖아 근데 그렇게 말고 내부에서 직접 의존 객체를 정의하는거야
- <bean> 중첩 사용
즉, <bean> 안에 또 <bean>
- 내부에 선언하면 id가 없어 그래서 익명이야
- 원래 bean은 다른 객체랑 공유가 가능하지 ref 같은거 말이야 근데 익명 bean은 공유가 불가능해
- 사용하는 bean이 독점적으로 걔만 쓸 수 있는거야
- 참조가 불가능하다는 것이지
'SPRING' 카테고리의 다른 글
DI XML / SpEL (property 방식) (0) | 2019.03.19 |
---|---|
DI XML / Collection Wiring (property 방식) (0) | 2019.03.19 |
DI XML / 의존 관계 설정 1 (생성자 방식) (0) | 2019.03.18 |
Spring Container (0) | 2019.03.18 |
AOP (Aspect-Oriented Programming) (0) | 2019.03.18 |