본문 바로가기

Programing/Spring FrameWork

[Spring] IoC (Inversion of Control) - 제어권의 역전

728x90
반응형

[Spring] IoC (Inversion of Control) - 제어권의 역전


의존성에 대한 일반적인 제어권: "내가 사용할 의존성은 내가 만든다."

class OwnerController {

	private OwnerRepository repository = new OwnerRepository();
    
}

 

 

IoC 컨테이너 사용: "내가 사용할 의존성을 누군가 알아서 주겠지"

-> 제어권이 IoC 컨테이너로 넘어가 프로그램의 흐름을 프레임워크가 주도하게 된다.

-> DI(Dependency Injection)도 IoC의 일종

class OwnerController(OwnerRespository repo){
	
    	private OwnerRepository repo;
        
        public OwnerController(OwnerRepository repo) {
        
        	this.repo = repo;
        }
        
}


// Test
class OwnerControllerTest{

    @Test
    public void create(){
    	
        OwnerRepository repo = new OwnerRepository();
        OwnerController controller = new OwnerController();
        
    }
    
}

IoC 컨테이너 ( ApplicationContext, BeanFactory )

 

  • Bean을 만들고 엮어주며 제공해준다.
  • 빈 설정: 이름 or Id, Type, Scope

 

728x90
반응형