반응형
IoC 컨테이너 - 객체가 자신이 의존할 객체를 직접 생성하지 않는다. 사용할 객체의 생성과 바인딩을 외부에 넘긴다.
의존할 객체의 결정권을 객체에 두지 않고, 스프링 프레임워크에 둔다.
DI - 두 클래스가 의존 관계에 있을 때 인터페이스를 사이에 두고 다형성을 통해 필요한 구현체(bean)를 외부에서 주입시킨다.
(스프링 IoC 컨테이너에 있는 Bean을 주입받는다.)
IOC 컨테이너에 클래스를 등록하여 관리하고 싶을 때 Bean을 생성하는 방식은 두 가지가 있다.
(어노테이션 이용)
- @Bean을 사용하는 방법
- @Component를 사용하는 방법
@Component
@Component는 클래스에 지정한다.
Component Scan에 의해 해당 클래스가 bean으로 생성되어 IoC 컨테이너에 등록된다.
DI를 클래스 내부에서 @Autowired를 사용해서 setter주입, 생성자 주입, field주입 등으로 의존 관계를 만들어주어야 한다.
@Bean
@Bean은 @Configuration클래스의 메서드에 지정한다.
수동으로 bean을 생성하는 방식이다.
직접 설계한 클래스가 아니면 @Component 지정이 불가능하기 때문에 외부 라이브러리 클래스를 bean으로 등록할 때 사용한다.
반응형
'프로그래밍 > Spring' 카테고리의 다른 글
스프링 프레임워크 DI, AOP, 환경설정(intellij, gradle, tomcat) (0) | 2022.07.23 |
---|---|
[Spring] Bean을 싱글톤으로 사용해도 되는 이유 (0) | 2022.07.18 |
[Spring] Validation 유효성 검증 (0) | 2022.07.16 |
[Spring] Spring boot JPA 연동, myBatis 연동 (0) | 2022.05.16 |
[Spring] DTO <-> Entity 변환 (0) | 2022.05.05 |