728x90
반응형

IoC (Inversion of Control) 

일반적인 제어권 : 내가 사용할 의존성을 내가 만든다. 컨트롤러 안에서 다하는것.

IoC: 내가 사용할 의존성을 누군가 알아서 주겠지. 의존성을 컨트롤러 밖에서 하는것. DI 도 일종의 IoC임.

 

Bean : 스프링 IoC컨테이너가 관리하는 객체

 

IoC: 스프링 IoC컨테이너가 의존성을 자동으로 주입.

 

IoC컨테이너 : 빈을 엮어주고, 제공해줌.

의존성 주입은 IoC컨테이너 안에 있는 빈(객체) 안에서만함, IoC컨테이너 안에 있는 빈을 가져온다. 

 

Controller controller = new Controller(); -> 빈 아님

Controller controller = ApplicationContext.getBean(Controler.class); -> 빈임

 

빈을 만드는 방법 

  1. 컴포넌트 스캔(Component Scan 위치 지정(@SpringBootApplication 의 하위 패키지)하고, @Controller 같은 애노테이션을 찾아서 빈으로 등록함. 
  2. 빈으로 직접 등록하는 방법 -> 아래처럼 @Configuration, @Bean을 이용한다. 
@Configuration
public class SampleConfig {
    @Bean
    public SampleController sampleController(){
         return new SampleController();
    }
} 
반응형

+ Recent posts