작성
·
240
0
안녕하세요. familyman 클래스를 작성하고 jar로 만든 후, 다른 프로젝트에서 임포트 하여 빈으로 등록 할 때, familyman 클래스 자체에 @Component를 붙여 빈으로 선언 하고(빈 자동 설정은 하지 않았습니다), 임포트 하는 프로젝트 쪽에서는 @Autowired 로 사용할 수 도 있는지요? 사실 이렇게 해보니 계속 아래와 같은 에러가 발생합니다..
Field familyman in ... required a bean of type '...' that could not be found.
...
Consider defining a bean of type '..' in your configuration.
일단 maven dependency 에도 정상적으로 등록 되어 있고, 로컬의 .m2에도 jar는 잘 생성 되어 있습니다. intellij 에서도 import 가 정상적으로 되며, 빌드 까진 문제가 없는데 런타임에서 실패 합니다.
이게 원래 안되는 건지, 아니면 제가 어떤 부분을 빠뜨렸는지, 무엇을 더 체크해 봐야 할지 조언 주시면 감사하겠습니다.
답변 4
0
0
소스 코드를 봤는데요. 여러가지 문제가 보이네요.
A 프로젝트에 있는 코드에 @Service를 붙였다고 해서 B라는 프로젝트에서 A를 의존성으로 추가만 해도 @Autowired로 주입받아서 쓸 수 있는건 아닙니다.
제 생각에는 스프링 핵심 기술 강의에서 제가 설명했던 컨포넌트 스캔을 다시 공부하시고 스프링 부트 개념과 활용 강의에서 자동 설정의 동작 원리 설명을 다시 공부하신 다음에 스스로 해결해 보려고 노력해보시면 좋겠습니다.
제가 가르쳐 드린다고 본인의 실력이 늘진 않을테니까요.
0
0
프로젝트를 깃헙에 올려서 공유해 주시겠어요? 코드를 봐야 알 수 있겠는데요. 메이븐에 의존성이 제대로 설정이 안됐으면 컴파일 에러가 나서 코딩을 할 때 이미 뭔가 잘못됐다는걸 알 수 있는데, 이 경우에는 빈을 찾지 못한다고 하는거 봐서는 빈 설정이 잘못된거 같기도 하고 또는 자동 설정을 잘못 설정하신거 같기도 한데 아무것도 안보고는 확인하기 어렵겠는데요.