[spring] IoC와 DI 간단 정리

nahae·2024년 3월 24일

spring

목록 보기
1/4
post-thumbnail

🍃IoC(Inversion of Control, 제어의 역전)

스프링에서는 객체들을 관리하기 위해 제어의 역전을 사용한다. 제어의 역전이란 객체의 생성과 관리를 개발자가 하는 것이 아닌 프레임워크가 대신하는 것.


  1. IoC 적용X : 기존과 같이 B객체를 사용하기 위해 객체가 필요한 곳에서 직접 생성
public class A{
	b = new B();
}
  1. IoC 적용O : 외부(스프링 컨테이너)에서 제공해주는 객체를 받아와 할당, setter()와 construct()만 이용한다.

'스프링 컨테이너'는 빈이 생성되고 소멸되기까지의 생명주기를 관리하고 빈을 주입받을 수 있게 DI를 지원함


🍃DI(Dependency Injection, 의존성 주입)

IoC를 구현하기 위해 사용하는 방법이 DI다. DI란 외부에서 객체를 주입 받아 사용하는 것이다.

클래스 간의 의존관계를 관리하기 위한 DI처리방법

  1. Setter Injection
    : setter 메서드를 통해 의존관계에 있는 객체를 주입, 클래스에 set 메서드有
    - property>태그를 이용해 bean을 주입
    - ref속성은 bean의 매개값이 객체인 경우에 사용.
    - value속성은 매개값이 문자열이나 기본데이터와 같은 값 주입시 사용

  2. Construction Injection
    : 생성자를 통해 의존관계에 있는 객체 주입, 클래스에 생성자 만들어줘야 함
    - <constructor-arg>태그 이용
    - 속성 사용은 위와 동일

3. Method Injection


🍃Bean

bean이란? 스프링 컨테이너에 등록한 객체

bean 정의

<bean id="빈이름(=객체이름)" class=“패키지.클래스이름"/>`

- <bean> 객체를 만들어달라는 태그
- id 스프링 컨테이너가 bean을 참조할 때 사용하는 이름
- class 스프링에게 bean의 타입을 알려줌



<참고자료>
https://shinsunyoung.tistory.com/133
https://life-with-coding.tistory.com/433
+수업자료

0개의 댓글