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 로) - 부품의 교체를 사람이 직접 해주는 예시임 ================================================================================ - [] 처럼 부품 조립 코드를 작성하지 않을 것임 - 설정을 외부로 뺀다 - 부품 조립을 스프링 프레임워크가 할 것이고, 조립된 객체는 여기로 주입될 것임 - 사람이 소스코드를 변경 시킬 필요 없다