This is personal study note
Copyright and original reference are from:
www.youtube.com/watch?v=gtqctgfywn4
스프링 프레임워크 강의 5강 - Dependency를 직접 Injection하기
================================================================================
- 자바 프로젝트를 생성
================================================================================
- 자바 프로젝트의 이름은 spring 이라고 작성
================================================================================
- src 위에서 Program 이라는 이름의 클래스를 추가한다 (동시에 spring.di 이름의 패키지를 추가함)
- 메인함수를 자동 작성에 체크
================================================================================
- 작성된 Program 클래스
- 2가지 클래스가 더 추가되어야함
- 1. 데이터를 가지고 있는 엔티티로서의 클래스
- 2. 그 엔티티를 활용해서 출력을 담당하는 클래스
================================================================================
- Exam 은 인터페이스
- NewlecExam 은 Exam 인터페이스에 대한 구현 객체가 될 예정
================================================================================
- 인터페이스 생성
- 패키지명은 spring.di.entity 로 함
================================================================================
- 객체가 가지고 있는 토탈을 반환하는 능력
- 객체가 가지고 있는 평균을 반환하는 능력
================================================================================
- Exam 인터페이스를 구현하는 NewlecExam 클래스를 만듦
================================================================================
- NewlecExam 클래스를 업데이트함
- NewlecExam 클래스는 데이터를 가지고 있는 클래스임
- private 필드를 만듦
================================================================================
- 또하나의 클래스를 만듦 (보여주는 클래스)
- ExamConsole 은 인터페이스
- InlineExamConsole 은 구현클래스1
- GridExamConsole 은 구현클래스2
================================================================================
- ExamConsole 인터페이스를 만듦
- 패키지는 spring.di.ui
================================================================================
- InlineExamConsole 클래스 생성
================================================================================
- InlineExamConsole 클래스 작성
- 필드 작성
- 필드를 사용하는 생성자 (overload 생성자) 작성
================================================================================
- 실행
================================================================================
- GridExamConsole 클래스를 작성
================================================================================
- GridExamConsole 클래스 내용 업데이트
================================================================================
- 실행
================================================================================
- InlineExamConsole 클래스 부품 (출력 기능 부품) 과 exam 객체 (데이터 저장 기능 부품) 이 같이 조립됨
- 조립된 객체가 console 에 의해 표시됨
- DI 임
- console 은 조립된 부품에 의존한다
================================================================================
- 부품을 교체함 (출력 기능 부품을 Inline 에서 Grid 로)
- 부품의 교체를 사람이 직접 해주는 예시임
================================================================================
- [] 처럼 부품 조립 코드를 작성하지 않을 것임
- 설정을 외부로 뺀다
- 부품 조립을 스프링 프레임워크가 할 것이고, 조립된 객체는 여기로 주입될 것임
- 사람이 소스코드를 변경 시킬 필요 없다