인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

작성자 없음

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

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 서비스 테스트

이번 강의에서 memberService Autowired 질문 있습니다.

작성

·

223

0

이번 강의에서 memberService에 필드 값 

memberRepository를 생성자 주입 해주셨는데,

이때, 클래스에 component 스캔 안달아도 되나요..?

의존성 주입할 때, 빈으로 등록하는 과정이 필수인줄

알았는데, 이번편을 보니 그게 아닌가 싶기도 하네요.. 

답변 1

0

안녕하세요. 유진이님, 공식 서포터즈 OMG입니다.

해당 강의의 프로젝트에는 @SpringBootApplication에 선언되어 있는 @Component스캔을 이용합니다.

(스프링부트 프로젝트 기본 생성)

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {

관련하여 @ComponentScan, @Component, @Bean, 수동,자동 빈등록에 대해 학습 하시길 권장드립니다.

감사합니다. 

스프링 부트 프로젝트 컴포넌트 스캔과 memberSevice에 memberRepository를 생성자 주입

해주는 것과 무슨 관계가 있죠..? 제 질문내용은 memberService와 memberRepository에

@Service, @Repository 등의 component scan이 없는데 autowired가 어떻게 동작하는지

여부에 대한 내용이였습니다. 

다시 글 남겨주셔서 이해했습니다.

해당 강의에서는 MemberService, MemberRepository 스프링이 관리하는 빈이 아닙니다.

순수 자바 클래스입니다.

연관 강의의 다음 강좌 ~5분까지 보시면 순수 자바 클래스임을 설명해주십니다.

추가적으로 모양의 인텔리제이 유료버전에서 지원하는 콩 모양 표시를 통해서도 스프링 컨테이너가 관리하는 빈인지 아닌지 알 수 있습니다.

또한 MemberService 테스트 실행 할 때 스프링 컨테이너가 실행되지 않고 테스트가 실행된 것을 강의에서도 볼 수 있고, 테스트 클래스 위에 @SpringBootTest 어노테이션이 붙어있지 않는 걸로도 순수 자바 테스트임을 알 수 있습니다.

작성자 없음

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

질문하기