Dependency Injection, Autowiring & Beans - Spring Boot 4 Basics With Kotlin
- Spring Boot의 핵심 개념인 의존성 주입(Dependency Injection)과 Bean에 대해 설명 💡
- 의존성은 한 클래스가 다른 클래스의 인스턴스에 의존하는 것을 의미 🔗
- Spring Boot는 의존성 관리를 자체적으로 수행 ⚙️
@Service, @Repository, @RestController 등의 어노테이션을 통해 Spring Boot에게 클래스의 역할을 알려줌 🏷️
- Spring Boot는 이러한 어노테이션이 붙은 클래스를 Bean으로 등록하고 관리 🗂️
- Bean은 Spring Boot에 의해 관리되는 컴포넌트이며, 프로젝트 내에서 자동으로 주입(autowiring)될 수 있음 🔌
@Component 어노테이션을 사용하여 일반 클래스도 Bean으로 등록 가능 🧰
- 생성자 주입(constructor injection)을 통해 클래스의 의존성을 명확하게 표현하는 것이 좋음 🏗️
- 필드 주입(field injection)도 가능하지만, 생성자 주입이 더 권장됨 💉
- Bean 생성 시 추가적인 설정이 필요한 경우
@Configuration 어노테이션을 사용하여 Bean을 등록할 수 있음 ⚙️
@Configuration 어노테이션은 개발자에게 해당 클래스가 설정 클래스임을 알려주는 역할 🛠️
- RestTemplate Bean을 정의하여 API 요청 설정을 변경하는 예시를 보여줌 🌐
- Spring Boot가 Bean을 생성하지 못하는 경우, 명확한 예외를 통해 문제점을 알려줌 ⚠️