본문 바로가기
Programming/Java

[ Spring ] 스프링 의존성 관리

by 코뮤(commu) 2021. 8. 27.
728x90
반응형

 

스프링 프레임워크를 공부하며, 컨테이너가 자동으로 관리해주는 것이 강력한 특징이라는 것을 알아가고 있다.

 

객체의 생성과 의존관계를 컨테이너가 자동을 관리해주는 것, 이게 바로 스프링 IoC의 핵심 원리이다.

 

 

 

스프링이 지원하는 IoC의 형태

 

  • Dependency Lookup
  • Dependency Injection

 

 

Dependency Lookup

 

: 컨테이너가 애플리케이션 운용에 필요한 객체를 생성하고

클라이언트는 컨테이너가 생성한 객체를 검색(Lookup) 하여 사용하는 방식

 

 

Dependency Injection

 

: 객체 사이의 의존관계를 스프링 설정 파일에 등록된 정보를 바탕으로 컨테이너가 자동으로 처리하는 방식.

 

따라서 의존성 설정을 바꾸고 싶을 때 코드가 아닌 스프링의 설정파일을 수정해야한다.

이러한 방식은 향후 유지보수가 용이해지는데 한 몫 한다.

 

 

Dependency Injection 은 컨테이너가 직접 객체들 사이의 의존관계를 처리하는 것.

 

 

Dependency Injection 은 다시 두가지로 나뉜다.

 

  • Setter Injection
  • Constructor Injection

 

 

 

위 설명에서, 의존 관계라는 단어를 사용했다.

 

과연 이 의존관계라는 것은 무엇인가?

 

 

의존(Dependency)관계는 객체와 객체 간의 결합 관계이다.

 

 

 

Setter Injection

 

이름에서도 알 수 있듯이 Setter 메소드를 호출하여 의존성 주입을 처리하는 방법이다.

멤버 변수를 원하는 값으로 설정하는 것을 목적으로 하고 있는데,

주로 Constructor Injection 보다는 Setter Injection을 사용하며,

Setter 메소드가 제공되지 않는 클래스에 대해서만 생성자 인젝션을 사용한다.

 

 

 

 

 

 

 

 

728x90
반응형