ERROR...ERROR...

ERROR 30740 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : 이게 뭐임!!

마로가마따 2021. 8. 1. 08:35

진짜 이게 뭐임 ㅋㅋㅋㅋ

 

 

 

읭 어제까지만 해도 돌아가던 코드가 안돌아간다고 ????

 

마법인가...

 

당연히 그럴리가 없지... 

 

 

##상황

 

스프링 부트 클론코드 프로젝트 https://github.com/RDDcat/helo-spring

 

진행중에 member controller 만들고 있었음

 

그러다가 ERROR 30740 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter 라는 에러 발생

 

인텔리제이에서 내 실행을 팅겨내는 밀당을 시도했음 ㅇ-ㅇ

 

 

##해결

 

1. 에러 로그 확인

 

Description:

Parameter 0 of constructor in first.helospring.service.MemberService required a bean of type 'first.helospring.repository.MemberRepository' that could not be found.


Action:

Consider defining a bean of type 'first.helospring.repository.MemberRepository' in your configuration.

 

 

'first.helospring.repository.MemberRepository' that could not be found.

이걸 보아하니 멤버 레보지토리를 못찾았다고 함

 

defining a bean of type

빈 타입을 지정해달라는데...

 

 

2. 프로젝트에서 문제가 생긴부분 연결구조 따라가면서 확인

 

// 멤버 컨트롤에서 멤버 서비스를 사용하고 싶어서 의존성 주입으로 구현

// 스프링 컨테이너가 확인하는 순서

// 멤버 컨트롤 > 멤버 서비스 > 멤버 리포지토리

 

MemberController > 

@Autowired memberService >

@Service MemberService > 

@Autowired memberRepository >

@Repository MemberRepository 

 

 

전부 다 어노테이션@이 정상적으로 붙어있는걸 확인함...

 

근데 이상한점을 발겼했음..!!!

 

생각해보니, 프로젝트가 어떤 DB를 쓸지 아직 정해지지 않았다고 가정을 하고 시작을 했었음...

 

그래서 Repository 를 인터페이스로 구현해서 인터페이스를 implements 하는 식으로 DB 종류에 구애받지 않고 구현중이었음

 

사실 지금은 메모리 디비를 구현체로 쓰고있었음...

 

확인하니 메모리 멤버 리포지토리에는 어노테이션@이 안붙어있어서

 

컨테이너가 인식할 수 있게 defining a bean of type을 해달라는 것이었음

 

public class MemoryMemberRepository implements MemberRepository{
...

 

@Repository 추가...

 

@Repository
public class MemoryMemberRepository implements MemberRepository{
...

 

 

##요약

 

전 @ 어노테이션을 꼼꼼히 안붙혀서 에러났습니다.

 

 

 

 

반응형