작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
342
0
@RequiredArgsConstructor
이 애노테이션은 final이 붙은 변수의 생성자를 자동으로 생성해주고, 생성자가 하나만 있다면 @AutoWired를 생략할 수 있다고 알고 있습니다.
private final MemberRepositoryV1 memberRepository;
근데 여기서, MemberRepositoryV1가 Bean으로 등록되지 않았는데 어떻게 자동으로 주입을 받을 수 있는 것이죠?
답변 1
0
안녕하세요. hjemsti님, 공식 서포터즈 OMG입니다.
.
@RequiredArgsConstructor는 결국 아래와 같은 생성자를 만들어주는 것이며, 본 강의에서는 MemberServiceV1Test에서 보시면 아시겠지만 직접 new로 생성합니다.
public class MemberServiceV1 {
private final MemberRepositoryV1 memberRepository;
public MemberServiceV1(MemberRepositoryV1 memberRepository) {
this.memberRepository = memberRepository;
}
class MemberServiceV1Test {
private MemberRepositoryV1 memberRepository;
private MemberServiceV1 memberService;
@BeforeEach
void before() {
DriverManagerDataSource dataSource = new DriverManagerDataSource(URL, USERNAME, PASSWORD);
memberRepository = new MemberRepositoryV1(dataSource);
memberService = new MemberServiceV1(memberRepository);
}
스프링 빈으로 등록하지 않았기 때문에 스프링이 제공하는 주입은 발생하지 않습니다.
.
감사합니다.