본문 바로가기
공부/Spring

[chap3] 스프링 DI

by JERO__ 2022. 5. 20.

3. 스프링 DI

3-1. 의존

  • DI(Dependency Injection) : 의존 주입
    • 의존 : 객체간의 의존을 의미 (Service클래스가 Dao클래스에 의존한다)

1-1. MemberService가 memberDao에 의존하는 코드

  • 의존하는 객체를 직접 생성하는 방식
public class MemberService {
	private MemberDao memberDao = new MemberDao();
}

1-2. 문제점

// 의존하는 MemberDao의 객체도 함께 생성된다.
MemberService memberService = new MemberService();

2-1. DI를 통한 의존 처리

  • 의존하는 객체를 전달받아 사용하는 방식
public class MemberService {
	private MemberDao memberDao;
	public MemberService(MemberDao memberDao){
		this.memberDao = memberDao;
	}
}
  • 의존 주입 대상이 되는 객체를 생성하는 코드 한 곳만 변경하면 됨

3-2. 객체 조립기 : 한 곳 변경점을 생성하는 곳

  • /assembler/Assembler.java 생성해서 조립해 볼 수 있다. → Assembler를 통해 사용할 조립품을 가져와 사용한다.
// 의존 객체를 변경하려면 조립기의 코드만 수정하면 된다.
public Assembler() {
	memberDao = **new CachedMemberDao();   // 이 부분만 수정하면 됨!**
	regSvc = new MemberRegisterService(memberDao);
	pwdSvc = new ChangePasswordService();
	pwdSvc.setMemberDao(memberDao);
}
  • 하지만, 스프링 사용시 만들지 않음. 왜냐? → 스프링이 DI를 지원하는 조립기이기 때문이다.

3-3. 스프링을 이용한 객체 조립 - DI 방식

  1. 생성자 방식
  2. 세터 메서드 방식
  3. 필드 주입 방식

'공부 > Spring' 카테고리의 다른 글

[chap5] 컴포넌트 스캔  (0) 2022.05.20
[chap4] 의존 자동 주입  (0) 2022.05.20
[chap2] 스프링  (0) 2022.05.20
JdbcTemplate를 사용하는 이유  (3) 2022.05.08
[Spring] DTO의 사용 범위  (0) 2022.05.07

댓글