Spring 의존주입이란?💡

Dev-O·2021년 9월 8일
1

Spring

목록 보기
1/11
post-thumbnail

의존주입(Dipendency Injection)

의존이란 변경에 의해 영향을 받는 관계

객체가 의존객체를 구하는 방법

1️⃣ 직접 생성

✔️ 의존을 필요로 하는 클래스에서 의존대상을 직접생성하는 방식
✔️ 의존을 필요로 하는 클래스를 생성하면 의존객체도 자동으로 생성된다

2️⃣ DI를 통해서

✔️ 의존을 필요로 하는 클래스에서 의존대상을 주입해주는 방식

스프링에서 DI를 사용하는 이유

1️⃣ 의존객체 변경의 유연성

✔️ 의존대상을 직접생성하는 경우

  • 유지보수 시 의존하고 있는 클래스를 모두 찾아가 수정해줘야한다.

✔️ DI를 사용하여 의존객체를 주입하는경우

  • 처음객체를 생성하는 부분만 변경.

스프링 DI방식1(Constructor)

1️⃣ 생성자 방식

✔️ 객체 생성 시 의존객체를 생성자의 매개변수를 통해 주입
✔️ XML에서 사용되는 생성자를 이용한 DI태그는 태그

✔️ 생성자로 초기화한 코드

public MemberService(MemberDao memberDao) {
	this.memberDao=memberdao;
}
✔️ xml bean 설정
<bean id = "memberService" class="spring.MemberService" >
	<constructor-arg ref="memberDao"/> 
</bean>

스프링 DI방식2(Set메서드)

1️⃣ Set메서드 방식

✔️ set으로 시작하는 프로퍼티 설정 메서드를 통해 의존객체를 주입받는 방법
✔️ 메서드 이름이 set으로 시작해야하며, 한개의 파라미터를 가져야한다.

✔️ set메서드로 초기화한 코드

public void setMemberDao(MemberDao memberDao) {
	this.memberDao=memberdao;
}
✔️ xml bean 설정
<bean id="memberService"class="spring.MemberService" >
	<property ref="memberDao"/> 
</bean>

참고)) 먼저 주입할 의존객체(memberDao)를 bean으로 생성해줘야한다

profile
Being Outstanding needs Understanding🚀

0개의 댓글