티스토리 뷰
POJO 클래스 다이어그램
* Hello 클래스가 StringPrinter 클래스를 바로 의존하는 것이 아닌, Printer Interface를 의존하는 형태 및 setter 방식으로 작성 예정.
Hello.class
Printer.class (Interface)
StringPrinter.class
ConsolePrinter.class
bean.xml
* 나의 해석
- name 필드에는 Hello에서 설정한 변수의 이름을 넣는다.
- Bean 객체 타입이 아닌 경우 value 속성 사용.
- Bean 객체 타입인 경우 ref 속성에는 bean이름을 이용해 주입할 bean을 찾는다.
- 해당 id의 bean은 StringPrinter bean이므로 의존 관계가 성립.
HelloTest.class
* 11행 처럼 getBean() 메서드의 아규먼트로 타입으로 지정할 오브젝트를 넘기지 않고 캐스팅 할 수 있으며, 15행과 18행 처럼 getBean() 메서드의 아규먼트로 타입으로 지정할 오브젝트를 넘길 수도 있다.
결과
* Hello Bean과 StringPrinter Bean의 값이 같다는 것으로 Spring 컨테이너가 Bean을 싱글턴 형태로 관리함을 알 수 있음.
-> StinrgPrinter 클래스에서는 append 메소드 이후 로직을 타고 있기 때문에 싱글턴으로 관리됨을 알 수 있음.
'Java > Spring' 카테고리의 다른 글
사용자 관리 프로젝트 아키텍쳐 (0) | 2017.01.08 |
---|---|
Annotation을 이용한 Bean 등록 (0) | 2017.01.07 |
Bean 의존 관계 설정 방법 (0) | 2017.01.07 |
IoC (Inversion of Control)와 DI (Dependency Injection) (0) | 2017.01.06 |
Spring Framework 개요 (0) | 2017.01.06 |
댓글