This is personal study note Copyright and original reference are from: www.youtube.com/watch?v=S065KRjXRSY 스프링 프레임워크 강의 12강 - 어노테이션을 이용할 때의 장점과 @Autowired를 이용한 DI 해보기 스프링_프레임워크_강의_12강_어노테이션을_이용할_때의_장점과_@Autowired를_이용한_DI_해보기 ================================================================================ - 초기화 설정 - xml 사용, 외부파일에 설정 정보 작성 - 어노테이션을 코드파일에 작성 ================================================================================ ================================================================================ - B: 인터페이스 - B2: B 인터페이스를 구현하는 클래스 (객체) - S 객체: B 인터페이스를 사용 - S 와 B2 의 결합상태, 두 객체를 생성하는 코드를 설정으로 뺌 - 결합상태를 바꾸고 싶을 때, 코드를 수정하지 않기 위해서 - 설정을 바꿔서 객체의 결합을 바꿔보자 ================================================================================ - B3 객체: B 인터페이스를 구현 ================================================================================ - 설정을 바꿔야함 (B2 부분) - 소스코드 안바꾸고 설정만 변경하면 결합상태 바꿀수 있다 - 과거에는 이걸로 만족 - 앉으면 눕고싶다고, 이것도 불편해지기 시작 - 객체를 바꾸면 설정도 같이 바뀌면 좋겠다 - 코드에 메타데이터를 심어서 이런일이 가능해 짐 ================================================================================ - @Component - 스프링이 코드를 읽게 함 - 스프링이 @Component 를 발견하면 이걸 객체화함 ================================================================================ - 객체가 바뀌고, @Component 는 B3가 가지고있느니까 이게 객체화됨 ================================================================================ - property 부분이 DI 이다 (결합, Injection 부분, 객체 생성은 다음시간에 배움) - console 에 가면 exam setter 가 있다 - 이 setter 가 사용하는 속성 exam 이 있다 - 이 속성에 @Autowired 를 붙임 - 그럼 지울 수 있다