반응형

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으로 등록할 때 사용한다.

 


 

반응형

+ Recent posts