[Spring Framework 특성 살피기] IoC에 대한 이해
2021. 8. 2. 17:23ㆍ컴퓨터과학
728x90
반응형
[Spring Framework 특성 살피기] IoC에 대한 이해
ㆍIoC(Inversion Of Control) : 의존성을 직접 만드는게 아니라 외부의 누군가가 만들어준다.
ㆍcase1 : 직접 의존성을 제어(직접 의존성을 만든다)
- [OwnerController]스스로가 사용할
[OwnerRepository]와의 의존성에 대한
제어권 갖고 직접 만들어 사용한다.
class OwnerController{ private OwnerRepository repository = new OwnerRepository(); } |
ㆍcase2 : 의존성 제어권을 위임 = 제어권의 역전(IoC) (외부에서 의존성을 만들어준다)
- 다른 존재[OwnerControllerTest]에게
[OwnerRepository]과의 의존성에 대한
제어권을 위임하고, 의존성을 만들게 한다.
Dependency Injection(의존성 주입)은
제어권을 갖는 외부의 존재[OwnerControllerTest]가
[OwnerController]에게 의존성을 주입해 주는 것이다.
class OwnerController{ private OwnerRepository repo; public OwnerController(OwnerRepository repo){ this.repo=repo; } } class OwnerControllerTest{ @Test public void create(){ OwnerRepository repo = new OwnerRepository(); //OwnerRepository를 만들어서 OwnerController controller = new OwnerController(repo); //Controller에 주입하여 의존성을 확보 } } |
[스프링에서 의존성 주입받는 방법]
ex) PetRepository 클래스를 주입받는 방법.
1. Autowired
class OwnerController{ @Autowired private PetRepository petRepository; } |
2. 생성자 + 파라미터로 주입
class OwnerController{ private final PetRepository petRepository; public OwnerController(OwnerRepository clinicService, PetRepository petRepository){.... } } |
3. 생성자 + Setter Autowired
class OwnerController{ private final PetRepository petRepository; @Autowired public void setPetRepository(PetRepository petRepository){.... } } |
// 참고 : https://www.youtube.com/watch?v=NZ_lPFvu9oU //
728x90
반응형
'컴퓨터과학' 카테고리의 다른 글
[API이해하기]API사용을 위한 기본적인 것들 (0) | 2021.08.05 |
---|---|
[Spring Framework 특성 살피기] PSA에 대한 이해 (0) | 2021.08.03 |
REST, RESTful의 개념 (0) | 2021.07.28 |
[SQL기초개념]Statement vs preparedStatement (0) | 2021.06.09 |
[JAVA개념공부]Collection Framework, Map메소드 사용법 (0) | 2021.05.30 |