Spring
19장 스프링 의존성 주입과 제어 역전 기능
최-코드
2024. 1. 30. 17:31
1. 의존성 주입하기
-의존성 주입 : 연관 관계를 개발자가 직접 코딩을 통해 컴포넌트(클래스)에 부여하는 것이 아니라 컨테이너가 연관 관계를 직접 규정하는 것. 코드에서 직접적인 연관 관계가 발생하지 않으므로 각 클래스들의 변경이 자유로워짐(약한 결합).
-의존성 주입 장점 :
1)클래스들 간의 의존 관계를 최소화하여 코드를 단순화할 수 있음
2)애플리케이션을 더 쉽게 유지 및 관리할 수 있음
3)기존 구현 방법은 개발자가 직접 코드 안에서 객체의 생성과 소멸을 제어했지만 의존성 주입은 객체의 생성, 소멸과 객체 간의 의존 관계를 컨테이너가 제어함.
-제어의 역전 : 기존 코드에서는 개발자가 직접 객체를 제어했지만 스프링 프레임워크에서는 객체의 제어를 스프링이 직접 담당. IoC(inverse of control)의 종류도 여러가지이며, 일반적으로 스프링에서는 DI로 IoC의 기능을 구현하므로 IoC보다는 DI라는 용어를 더 많이 사용함.
-스프링의 의존성 주입 방법 :
1)생성자에 의한 주입
2)setter에 의한 주입
cf)setter에 의한 주입이 이루어질 때 만약 데이터가 기본형이 아닌 참조형인 경우 ref 속성을 설정해야 한다. 이때 ref에 값으로 넣는 것은 <bean>태그의 id를 써준다. + property에서의 name은 setter 함수의 파라미터명과 같아야 한다. 클래스의 변수명과는 달라도 됨.