본문 바로가기

웹프로그래밍/spring~~

Spring IOC

Inversion of Control(제어권의 역전)

 

일반적인 의존성에 대한 제어권을 자기 자신이 가지고 있었다.

 

class OwnerController{

   private OwnerRepository repository = new OwnerRepository();

}

 

 

그런데 instance를 여러군데서 사용 한다거나 일일히 생성해서 사용하는데 불편함을 느껴

서 instance의 생성을 컨테이너에 맡겨서 일관적으로 진행한 후에 

필요할 때만 @autowired, @inject 등으로 instance를 컨테이너로 부터 주입받아서 사용

 

 

instance의 생성 및 관리 주체자가

'사용자-나' -> 컨테이너 로 변했기 때문에

Inversion of Control, 제어의 역전이 되는 것이고 그 방법론으로

Dependency of Injection 의존성 주입이 일어나는 것 입니다.

DI에는 Setter Inj, Constructor Inj, Method Inj로 나누어짐

 

 

내가 사용할 의존성을 누군가 타입을 맞게 주는 것 

 

class OwnerController{

    private OwnerRepository repo;

    public OwnerController(OwnerRepository repo){

        this.repo = repo;

  }
}
class OwnerController Test{

  @Test

  public void create(){

    OwnerRepository repo = new OwnerRepository();

    OwnerController controller = new OwnerController(repo);

  }

}



 

반응형

'웹프로그래밍 > spring~~' 카테고리의 다른 글

Maven 이란~  (0) 2019.06.05
Spring PSA  (0) 2019.05.30
SPRING AOP  (0) 2019.05.30
의존성 주입  (0) 2019.05.30
Spring bean이란 ?  (0) 2019.05.29
Thymeleaf란?  (0) 2019.05.28
Spring MVC구조  (0) 2019.05.20
세션, 쿠키  (0) 2019.04.27