Spring[Info] - Spring Triangle_IoC

2021. 7. 2. 14:19Spring/Spring[Info]

반응형

🤔 Inversion of Control? (제어의 역전)

  • 사용은 하지만 만들진 않음
  • 누군가 밖에서 만들어서 줄 수 있도록 생성자를 통해 받아옴

💻 IoC Template

// Controller의 생성자는 repo를 주입해줘야 한다.
// 생성자로 강제하기 때문에 repo 객체는 무조건 사용할 수 있다.
class OwnerController {
	private OwnerRepository repo;

	public OwnerController(OwnerRepository repo) {
    	this.repo = repo;
	}
 }
class OwnerControllerTest {
    @Test
    public void create() {
        OwnerRepository repo = new OwnerRepository();

				// 외부에서 repo 주입
        OwnerController controller = new OwnerController(repo);
    } 
}

🤔 Spring IoC Container

  • 빈(Bean)을 만들고, 의존성을 엮어주며, 제공해주는 역할을 수행
  • ApplicationContext 또는 beanFactory 중 하나를 사용
  • BeanFactory가 실질적인 IoC 컨테이너
  • ApplicationContext는 BeanFactory를 상속받아 더 다양한 일 수행
  • 의존성 주입은 Bean끼리만 가능하다.
반응형