Spring IoC,DI

ifuleave·2022년 9월 29일
0

spring

목록 보기
3/6

IoC

  • INversion of Control의 약자로 제어의 역행이라는 의미
    -프로그램을 구동하는데 필요한객체 생성에 대한 생성, 변경등의 관리를 개발자가 아닌 프로그램을 구동하는 컨테이너(spring)에서 직접관리하는것
    자바는 객체를 생성, 변경 하는 것을 Spring에게 위임
    객체 생성의 권한을 프로그램에 준다. 그래서 제어의 역행이라고 한다.

IoC 컨테이너의 역할
객체의 생명주기와 의존성관리
-생명주기 : 생성->초기화->사용->소멸(없앰)
-> 개발자가 할 수 있지만 프로그램이 하게, 그래서 개발시간을 최대한 줄이는 것이 목적
-의존성 : 개발자가 직접 객체를 생성할 수 있지만 해당 권한을 컨테이너에 맡김으로써 소스코드 구현의 시간을 단축

결합도
클래스가 2개가 있음.
한클래스를 갔다가 썼는데 한개를 수정했는데 반대쪽도 에러가남 그럼 둘다 수정해야하는데
둘다 수정해야 사용할 수 있다. -> 둘의 관계가 결합도가 높다고 함.
한쪽 수정하면 반대쪽도 수정해야보니까 할일이 많아진다.
이런 결합도를 낮추는게 목적이고, 최대한 독립적으로 수행되게 하는것
어떻게 하면 개발자가 할 일을 최소화 할 수 있을까가 목적
그래서 Spring은 셋팅이 중요 !

Spring DI종류
1.setter메소드를 통한 의존성 주입
-의존선을 주입받는 setter메소드를 만들고, 이를 통해 의존성을주입
2.생성자를 통한 의존성 주입
-필요한 의존성을 포함하는 클래스에 생성자를 만들고, 이를 통해 의존성을 주입
3.메소드를 통한 의존성 주입
-의존성을 입력받는 일반메소드를 만들고 이를 통해 의존성을 주입

profile
꼬마개발자

0개의 댓글