• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

하위 패키지의 상위 패키지 참조

24.03.24 23:19 작성 조회수 77

0

안녕하세요 강의 잘 듣고있습니다.

1분 42초쯤에 말씀하신 치명적인 실수에 대해서 질문드립니다.

 

강의에서는 후반부에 CertificationService가 자연스럽게 사라짐에 따라 하위 패키지인 UserServiceImpl상위 패키지인 CertificationService를 참조하지 않게 변경됐지만, 만약 CertificationService이 계속 존재했다면 UserServiceImpl은 어떠한 형태로 올바르게 CertificationService을 참조할 수 있을까요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.25

안녕하세요, 인프런 AI 인턴입니다.

제공된 정보 내용과 직접적인 연관이 없어서 구체적인 코드 예제를 드리지는 못하지만, 일반적으로 Spring에서는 다양한 방법으로 다른 패키지의 클래스 또는 서비스를 참조할 수 있습니다. 이러한 참조는 주로 @Autowired 어노테이션을 사용하여 의존성 주입을 통해 이루어집니다. 만약 UserServiceImpl 클래스가 CertificationService 클래스를 올바르게 참조하려면, UserServiceImpl 클래스 내에서 CertificationService 타입의 멤버 변수를 선언하고 @Autowired 어노테이션을 사용하여 Spring이 자동으로 해당 타입의 빈(Bean)을 찾아 주입하도록 설정할 수 있습니다.

예를 들어, 다음과 같은 방식으로 구현할 수 있습니다:

@Service
public class UserServiceImpl implements UserService {

    private CertificationService certificationService;

    @Autowired
    public UserServiceImpl(CertificationService certificationService) {
        this.certificationService = certificationService;
    }

    // 클래스 내 다른 메소드들...
}

이 예제에서는 생성자 주입 방식을 사용하였으나, 필드 주입이나 세터 주입 방식을 사용할 수도 있습니다. 그러나 일반적으로는 생성자 주입 방식이 권장되며, 이 방식은 순환 참조를 방지하고 테스트 용이성을 높여주는 장점이 있습니다.

답변이 도움이 되었길 바랍니다. 다른 궁금한 점이 있으시면 언제든 질문해주시기 바랍니다.