스프링 DI


Dependency Injection
의존 주입

A 클래스의 메서드를 실행시킬 때 B 클래스의 메서드를 참조해야 한다면?
-> A 클래스가 B 클래스에 의존하는 것!

의존하는 객체를 직접 생성해도 되지만 이렇게 하는 방식은 유지보수에 안좋다고 한다. 그래서 사용하는 것이 DI와 서비스 로케이터이며 여기서는 주로 DI에 대해 다룰 것이다.

DI를 통한 의존 처리


DI -> 의존하는 객체를 직접 생성하지 않고 의존 객체를 전달받음

의존성 주입 실습용 프로젝트 sp5-chp03을 만들었다.
우선 클래스들을 생성하고 생성자와 getter setter, 최소한의 메서드들만 만들어 두었다.

기존 방식은 매번

private MemberDao memberDao = new MemberDao();

이런식으로 새로운 객체를 직접 생성했다면,
DI 방식으로는 위처럼 객체를 직접 생성하는 구문은 한 번만 선언하고 나머지 클래스에서는

MemberRegister memReg = new MemberRegister(memberDao);
ChangePassword ChangePwd = new ChangePassword(memberDao);

이처럼 이미 생성된 memDao 객체를 전달받아 사용한다.

객체 조립기


코드를 다 작성했으면 객체를 생성하고 의존성을 주입해주기 위한 클래스가 하나 필요하다.
이런 역할을 하는 클래스를 assembler라고 부른다.
assembler의 getter를 통해 원하는 객체를 꺼내서 사용하면 된다.

0개의 댓글