본문 바로가기
반응형

Spring8

[Spring Core] Component Scan (@ComponentScan) 컴포넌트 스캔 컴포넌트 스캔(Component Scan)은 클래스 로더(Class Loader)를 스캔하면서 특정 클래스를 찾은 다음, DI 컨테이너에 등록하는 방법을 말한다. [기본 설정으로 컴포넌트 스캔하기] 스캔 대상 애너테이션 별도의 설정이 없는 기본 설정에서는 다음과 같은 애너테이션이 붙은 클래스가 탐색 대상이 되고, 탐색된 컴포넌트는 DI 컨테이너에 등록된다. @Component (org.springframework.stereotype.Component) @Controller (org.springframework.stereotype.Controller) @Service (org.springframework.stereotype.Service) @Repository (org.springframew.. 2021. 4. 5.
[Spring Core] Autowiring (@Autowired, @Qualifier, @Primary, @Resource) Autowiring Autowiring은 자바 기반 설정 방식에서 @Bean 메서드를 사용하거나 XML 기반 설정 방식에서 요소를 사용하는 것처럼 명시적으로 빈을 정의하지 않고도 DI 컨테이너에 빈을 자동으로 주입하는 방식이다. Autowiring에는 타입을 이용한 방식(autowiring by type)과 이름을 사용한 방식(autowiring by name)이 있다. 이제 이 두 방식에 대해 알아보자. [타입으로 Autowiring하기] 타입으로 Autowiring하는 방식은 세터 인젝션, 컨스트럭터 인젝션, 필드 인젝션의 세 가지 의존성 주입 방법에서 모두 활용할 수 있다. 타입으로 Autowiring 할 때는 기본적으로 의존성 주입이 반드시 성공한다고 가정한다. 그래서 주입할 타입에 해당하는 빈을.. 2021. 4. 3.
[Spring Core] Spring DI의 세 가지 방식(setter injection, constructor injection, field injection) 의존성 주입 다음은 의존성 주입에 대해서 알아보자. 총 세 가지 의존성 주입 방법을 사용할 수 있다. 설정자 기반 의존성 주입 방식(setter-based dependency injection) 생성자 기반 의존성 주입 방식(constructor-based dependency injection) 필드 기반 의존성 주입 방식(field-based injection) [설정자 기반 의존성 주입 방식] 설정자 기반의 의존성 주입 방식은 설정자 메서드의 인수를 통해 의존성을 주입하는 방식이다. 편의상 설정자 기반 의존성 주입 방식을 세터 인젝션이라고 부르자. UserServiceImpl에 설정자 메서드 구현 public class UserServiceImpl implements UserService { priv.. 2021. 4. 3.
[Spring Core] 의존성 주입(DI) 개요 및 Bean 설정 방식 DI 개요 DI는 의존성 주입이라고도 하며, IoC라고 하는 소프트웨어 디자인 패턴 중 하나다. 이때의 IoC는 인스턴스를 제어하는 주도권이 역전된다는 의미로 사용되는데, 컴포넌트를 구성하는 인스턴스의 생성과 의존 관계의 연결 처리를 해당 소스코드가 아닌 DI 컨테이너에서 대신해주기 때문에 제어가 역전됐다고 보는 것이다. DI 컨테이너에서 인스턴스를 관리하는 방식에는 다음과 같은 장점이 있다. 인스턴스의 스코프를 제어할 수 있다. 인스턴스의 생명 주기를 제어할 수 있다. AOP 방식으로 공통 기능을 집어넣을 수 있다. 의존하는 컴포넌트 간의 결합도를 낮춰서 단위 테스트하기 쉽게 만든다. 코드의 재활용성을 높여준다. DI 컨테이너(ApplicationContext) 와 빈 정의 방법 [Configurati.. 2021. 4. 3.
반응형