인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

스프링 DB 1편 - 데이터 접근 핵심 원리

트랜잭션 - 적용1

MemberServiceV1 @RequiredArgsConstructor 질문입니다

작성

·

345

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);
    }

스프링 빈으로 등록하지 않았기 때문에 스프링이 제공하는 주입은 발생하지 않습니다.
.
감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기