DI는 스프링만에 기능은 아니며 프로그래밍을 하는 방법중 하나이다.
배터리 일체형, 배터리 분리형 의 2종류 장난감이있는데
일체형은 배터리가 떨어지면 새로 장난감을 구입해야 하는 최악의 장난감이고
분리형은 배터리가 떨어지면 배터리면 교체하면된다
둘중 누가 효율적이냐 하면 당연히 후자이다
이것을 프로그램적으로 생각할때에 객체가 모든것에 엮여있다면...
예를들어 계산기로 표현하면 덧셈,뺄셈,나눗셈 기능 등... 이있는데
나누기는 소수점이 2자리만 표현되는데 나중에 계산기의 기능을 원하는 클라이언트가 와서 소수점 5자리로 바꿔달라
할때에 배터리 일체형처럼 묶여있다면 프로젝트를 다시 만들어야하는 수고를 겪어야 하는데
객체가 분리되어있다면 나눗셈의 객체부분만 새로 개발하여 바꿀수 있다.
(이걸 프로그램의 유연성 이라고 부른다)
여기에서 유연성을 좀 더 깊게 생각해본다면 어느 장난감이든 배터리라는 객체에
의존하여 완벽한 장난감이 된다 이 의존성을 Dependency injection(의존주입) 이라고 한다.
3가지 방법다 배터리를 주입해주나
3번째 라디오 장난감의 방법이 가장 좋다
생성자를 통해 배터리를 넣어주고
setBattary를 통해 배터리를 언제든지 교채해 줄 수 있다.
스프링은 스프링 설정파일을 이용하여 객체를 생성한다(메모리에 로드한다는 말이다)
이후 getBean()이라는 메서드를 이용하여 언제든 불러와 얼마든지 이용할 수 있다.
스프링 DI설정 방법은 객체가 모여있는곳이 컨테이너인데 컨테이너에서 객체끼리
서로 의존주입 관계가 있는것이다.
(객체가 다른 객체를 의존하는 것이다, 이것이 스프링에서 이루어지는 DI의 형태이다.)
각각의 객체들이 dao객체를 생성해서 쓴다면 하나의 DB를 사용하지 않아서 관리가 이루어 지지않는다
그렇기에 하나의 dao객체를 만들어 모든 객체에 주입하여준다(하나의 dao를 의존)
'공부 > Spring 복습' 카테고리의 다른 글
스프링 설정 파일 분리 (1) | 2021.08.27 |
---|---|
스프링 다양한 의존 객체 주입 방법 (0) | 2021.08.26 |
스프링 프로젝트 직접 만들어 import하기 (0) | 2021.08.26 |
스프링 프로젝트 생성해보기 (0) | 2021.08.25 |
스프링 프로젝트 생성 (3) | 2021.08.25 |