스프링 IoC 컨테이너

corncheese·2023년 6월 6일
0

Spring

목록 보기
1/8

면접에서 자신있게 말하는 그 날까지,,,,,!

자바 애플리케이션은 객체의 상호작용으로 동작한다.
객체가 다른 객체와 상호 작용 하는 경우를 객체의 의존관계라고 한다.

DI(dependency Injection) 는
객체 간의 의존 관계를 생성자 인수나 세터 메서드 인수로 명시하고 객체를 생성할 때 생성자나 세터를 통해 의존관계를 주입하는 방식을 따르는 디자인 패턴이다.

스프링 IoC 컨테이너는 스프링 애플리케이션에서 애플리케이션에 존재하는 객체를 생성하고 의존관계를 주입하는 일을 담당한다.

  • 스프링 컨테이너가 생성하고 관리하는 애플리케이션 객체들을 bean 이라고 한다.
  • 의존 관계를 만들고 주입하는 책임은 애플리케이션의 객체가 아닌 스프링 컨테이너에 있어 DI를 제어의 역전(IoC)이라고도 부른다

스프링 기반 애플리케이션에서 애플리케이션 객체와 그들의 의존 관계는 설정 메타 데이터(configuration metadata)를 사용해 지정한다.
스프링 IoC 컨테이너는 애플리케이션의 설정 메타데이터를 읽어서 애플리케이션 객체들과 그들의 의존관계를 인스턴스화 한다.

스프링 컨테이너에 설정 메타데이터를 제공할 때는 XML, 자바 에너테이션, 자바 코드 등의 방식을 사용할 수 있다.

스프링 컨테이너가 애플리케이션 객체를 생성하고 관리하므로 스프링 컨테이너를 통해 엔터프라이즈 서비스(트랜잭션 관리, 보안, 원격 접근 등)을 투명하게 객체에 적용할 수 있다.
이런 식으로 스프링 컨테이너가 애플리케이션 객체에 추가 기능을 부여하고 애플리케이션 객체를 POJO(Plain Old Java Object)로 모델링할 수 있다

POJO에 해당하는 자바 클래스를 POJO 클래스라고 부른다.
POJO클래스는 프레임워크가 지정하는 인터페이스나 클래스를 구현 및 확장하지 않는 보통 자바 클래스에 지나지 않는다.

0개의 댓글