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

박영민님의 프로필 이미지
박영민

작성한 질문수

스프링 핵심 원리 - 기본편

옵션 처리

TestBean class작성시

작성

·

423

0

안녕하세요 영한님의 코드를 잘못 따라 치다가 static이 아닌 public class TestBean으로 작성하고 test를 실행해보았는데요

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'autowiredTest.TestBean': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.autowired.AutowiredTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

 

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.autowired.AutowiredTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

 

라고 떠서 질문 남깁니다! 

왜 static으로 말고 public으로 할시 저런 문제점이 생길까요?

답변 미리 감사합니다!

 

답변 1

0

안녕하세요. 박영민님, 공식 서포터즈 OMG입니다.

동일한 질문에 대한 영한님의 답변과 잘 정리된 정리 글 링크 첨부합니다 :)

https://www.inflearn.com/questions/110694

https://www.inflearn.com/questions/257297


감사합니다.

박영민님의 프로필 이미지
박영민
질문자

아 감사합니다! 완전히 이해했는데요 궁금한점이 한가지 더생겨서요 spring에서 test를 run을 할경우 class파일을 읽어드리기 전에 @붙은 애너테이션을 먼저 확인하기 때문에 static으로 내부클래스를 선언 안 할 시에는 bean으로 등록이 안된다는게 맞나요? 또한 반대로 static으로 해주어야 내부클래스가 외부 클래스가 등록되기 전에 static변수 클래스로 올라가기때문에 spring에서 bean으로 등록 가능한거구요 이해한부분이 맞는지 확인 부탁드릴께요!ㅎ

 

테스트에서의 동작까지는 알지 못하나 @SpringBootTest를 선언한 테스트를 진행 시 스프링 애플리케이션가 동일하게 스프링 컨테이너가 실행되기 때문에 애플리케이션 구동 흐름과 동일하거나 비슷하게 흘러가지 않을까 싶습니다.

아는 분 계시면 답변 부탁드립니다^^!

박영민님의 프로필 이미지
박영민

작성한 질문수

질문하기