강의

멘토링

로드맵

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

백엔드 지망생님의 프로필 이미지
백엔드 지망생

작성한 질문수

이건 스프링 버전차이 인가요?

작성

·

87

0

 

강사님은 spring 2.4.5 버전입니다. 저는 3.3.4 버전입니다.
테스트 코드 작성 중인데
강사님께서는 @Autowired를 @SpringBootTest없이 사용해도 오류가 안떴는데 저는 뜨네요..
자동 주입된 멤버는 올바른 Spring bean에서 정의되어야 한다고 하는데 버전이 올라가면서 바껴서 이런걸까요

import org.flywaydb.core.Flyway;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.TestInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class ResetDatabase {
    @Autowired
    private Flyway flyway;


    @BeforeEach 
    public void setUp(){
       flyway.clean();
       flyway.migrate();
    }
}

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
스프링 버전이 다르면 사용법이나 기능에서 차이가 발생할 수 있습니다. 그러나 제공된 정보에는 스프링 버전 차이에 따른 @Autowired 사용법의 변화에 대한 구체적인 내용이 없습니다.

문제 해결을 위해 다음을 시도해보세요:
- 스프프링 공식 문서 또는 다른 신뢰할 수 있는 출처를 참조하여 해당 버전의 변화로그를 확인합니다.
- 버전 차이로 인한 문제가 맞는지 확인하기 위해 강사님과 동일한 환경에서 테스트를 시도해 볼 수 있습니다.

@Autowired는 스프링이 관리하는 빈(Bean)에 대해 자동으로 의존성을 주입할 때 사용합니다. @SpringBootTest와 같은 테스트 환경 설정 어노테이션 없이 @Autowired를 사용하려면 대상 클래스가 스프링 컨텍스트에 등록된 빈이어야 합니다. 버전이 다르면 세부적인 동작 방식이나 요구 사항에서 차이가 발생할 수 있으므로, 각 버전의 공식 문서를 참고하는 것이 좋습니다.

스프링 버전 업데이트가 원인일 수도 있지만, 정확한 원인 파악을 위해서는 해당 버전의 공식 문서나 변경 로그를 확인해 보시는 것이 가장 정확합니다.

백엔드 지망생님의 프로필 이미지
백엔드 지망생

작성한 질문수

질문하기