슬픈강낭콩

[DI] Dependency Injection 본문

프로그래밍/spring

[DI] Dependency Injection

슬픈강낭콩 2023. 1. 11. 12:35

MemberService 클래스
MemberServiceTest 클래스

Test에서 하는 MemberRepository 인스턴스는  MemberService 클래스와 MemberServiceTest 클래스에서 사용하는 MemberRepository는 서로 다른 객체인데 이럴때 두개의 새로운 인스턴스를 쓰면 오류가 발생할 수 있기때문에 두개를 만들 이유가 없고 한개로 쓰는게 좋기때문에  다음과 같이 해결한다.

 

작동방식

1. @BeforeEach는 각 Test 메서드를 시작하기전에 실행된다.

2. MemberServiceTest 클래스에서 beforeEach가 먼저 실행되어서 memberRepopsitory가 실행되고

3. MemberService에서 생성자로 memberRepopsitory를 this로 받아서 두 클래스에서 같은 인스턴스를 가르키게 되어서 두 클래스가 같은 인스턴스를 사용하게 된다.

*MemberService에서 직접 new하지않고 외부에서 memberRepopsitory를 받아서 사용한다.

 

MemberServiceTest 클래스
MemberService 클래스