본문 바로가기
Programming/Spring

[Spring] DI ( Dependency Injection )

by 공부합시다홍아 2024. 5. 15.
 

[Spring] Maven Project 생성

[Spring] Spring의 이해Spring Framework (스프링 프레임워크) 란 ? 프레임워크(Framework)  프레임워크(Framework) 라는 단어는 Frame(틀) + work(일)이라는 단어의 합성어입니다. 일 구조, 혹은 작업 구조라는 뜻과

hong-study.tistory.com


Spring  IoC / DI

Java의 Class 상속 / Interface 를 이용한 추상화를 기반으로 하는 개발 방법
Spring은 아래 IOC / DI를 강력하게 지원하는 프레임 워크이다.

  • IoC : Inversion of Control
    프로그램을 제어하는 패턴 중 하나
    DI는 IoC 패턴의 구현 방법 중 하나
    DI에 따라 프로그램의 흐름이 완전히 변경된다.
  • DI : Dependency Injection
    스프링 Container에 만들어둔 각 종 클래스(bean)들은 서로 의존적이다.
    A 객체가 B객체 없이 동작이 불가능한 상황






  • xmlns : 속성 값은 네임스페이스로 태그를 식별
  • xmlns:xsi : XML 정보를 가리키는 주소
  • xsi:schemaLocation : 두 개의 값이 공백으로 구분(첫번째:사용할 네임스페이스/두번째:참조할 네임스페이스 위치)

생성자를 이용한 의존 객체 주입 방법

의존성 주입 방법은 여러 가지가 있지만, 이 중 생성자를 이용한 방법을 가장 많이 권장한다.

Setter를 통한 의존 객체 주입


빈(Bean)의 범위

1. 싱글톤(SingleTon) : 스프링 컨테이너에서 생성된 빈 객체의 경우 동일한 타입에 대해서는 기본적으로 한 개만 생성
▶ getBean() 메소드로 호출될 때 동일한 객체가 반환된다. 

2. 프로토타입(ProtoType) : 싱글톤 범위와 반대의 개념으로, 개발자가 별도로 설정해줘야 한다.
▶ 스프링 설정 파일에서 빈(Bean) 객체를 정의할 때 Scope 속성을 명시해 주면 된다.


의존 객체 자동 주입

스프링 설정 파일에서 의존 객체를 주입할 때 <constrructor-org> 또는 <property> 태그로 의존 대상 객체를 명시하지 않아도 스프링 컨테이너가 자동으로 필요한 의존 대상 객체를 찾아서 의존 대상 객체가 필요한 객체에 주입해 주는 기능이다.

구현 방법은 @Autowired @Resource Anntation을 이용해서 쉽게 구현한다.


@Autowired - 속성값, 세터, 생성자 적용 가능

주입하려고 하는 객체의 타입이 일치하는 객체자동으로 주입힌다


@Resource - 속성값, 세터 적용 가능

주입하려고 하는 객체의 이름이 일치하는 객체자동으로 주입한다.


@Qualifier - 모호한 bean의 강제 연결


빈 생성과 의존성 주입 비교!!!!


XML 파일을 JAVA 파일로 변경하기!!

728x90

'Programming > Spring' 카테고리의 다른 글

[Spring] JSP에 스프링 조합하기  (0) 2024.05.15
[Spring] 스프링 MVC 웹 서비스  (0) 2024.05.15
[Spring] 개발 환경 구축  (0) 2024.05.15
[Spring] Maven Project 생성  (0) 2024.05.15
[Spring] Spring의 이해  (0) 2024.05.15