제어의 역전(Inversion of Control) > 개발자가 직접 객체를 관리(제어)하는 것이 아니라 프레임워크(또는 컨테이너)에서 객체를 관리하는 행위 객체에 대한 관리 권한이 프레임워크(또는 컨테이너)로 역전 프레임워크 vs 라이브러리 >프레임워크: 내가 작
Spring Bean >- Spring IoC Container가 관리하는 Java 객체 >- Spring에 의해 생성되고 관리되는 Java 객체 >- 와 같은 메소드를 이용하여 Spring Container로부터 Bean 객체를 얻어옴 Spring Container
설정 정보(AppConfig)에 직접 등록할 Spring Bean을 등록하지 않고자동으로 Spring Bean을 등록하는 기능@Component Annotation이 붙은 클래스를 스캔해서 Spring Bean으로 등록의존 관계를 자동으로 주입하는 @AutoWired
의존관계 주입 방법 1. 생성자 주입 생성자를 통해서 의존관계 주입 생성자 호출 시점에 1회만 호출되는 것이 보장됨 불변, 필수 의존관계에 사용 > 생성자가 1개만 존재한다면 를 생략해도 자동 주입 2. 수정자 주입 (setter 주입) setter라 불리는 필드의
Lombok 최근에는 생성자를 딱 1개 두고, 를 생략하는 방법을 주로 사용 Lombok 라이브러리의 함께 사용하면 기능은 다 제공하면서, 코드는 깔끔하게 사용할 수 있음 기본 코드 Lombok 라이브러리의 @RequiredArgsConstructor 사용 코드
객체 생성 -> 의존관계 주입Spring Container 생성 -> Spring Bean 생성 -> 의존관계 주입 -> 초기화 콜백 사용 -> 소멸전 콜백 -> 스프링 종료초기화 콜백 : Bean이 생성되고, Bean의 의존관계 주입이 완료된 후 호출소멸 전 콜백 :