Spring

19장 스프링 의존성 주입과 제어 역전 기능

최-코드 2024. 1. 30. 17:31

1. 의존성 주입하기

-의존성 주입 : 연관 관계를 개발자가 직접 코딩을 통해 컴포넌트(클래스)에 부여하는 것이 아니라 컨테이너가 연관 관계를 직접 규정하는 것. 코드에서 직접적인 연관 관계가 발생하지 않으므로 각 클래스들의 변경이 자유로워짐(약한 결합).

 

-의존성 주입 장점 :

 1)클래스들 간의 의존 관계를 최소화하여 코드를 단순화할 수 있음

 2)애플리케이션을 더 쉽게 유지 및 관리할 수 있음

 3)기존 구현 방법은 개발자가 직접 코드 안에서 객체의 생성과 소멸을 제어했지만 의존성 주입은 객체의 생성, 소멸과 객체 간의 의존 관계를 컨테이너가 제어함.

 

-제어의 역전 : 기존 코드에서는 개발자가 직접 객체를 제어했지만 스프링 프레임워크에서는 객체의 제어를 스프링이 직접 담당. IoC(inverse of control)의 종류도 여러가지이며, 일반적으로 스프링에서는 DI로 IoC의 기능을 구현하므로 IoC보다는 DI라는 용어를 더 많이 사용함.

 

-스프링의 의존성 주입 방법 :

 1)생성자에 의한 주입

 2)setter에 의한 주입

xml 파일에서

cf)setter에 의한 주입이 이루어질 때 만약 데이터가 기본형이 아닌 참조형인 경우 ref 속성을 설정해야 한다. 이때 ref에 값으로 넣는 것은 <bean>태그의 id를 써준다. + property에서의 name은 setter 함수의 파라미터명과 같아야 한다. 클래스의 변수명과는 달라도 됨.