Could not autowire. No beans of 'MemberRepository' type found.
3237
작성한 질문수 1
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예
[질문 내용]
@Configuration
public class SpringConfig {
private final MemberRepository memberRepository;
@Autowired
public SpringConfig(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
@Bean
public MemberService memberService() {
return new MemberService(memberRepository);
}
// @Bean
// public MemberRepository memberRepository() {
// //return new JdbcTemplateMemberRepository(dataSource);
// return new JPAMemberRepository(em);
// }
}SpringConfig() 함수의 memberRepository 인자 부분에서 Could not autowire. No beans of 'MemberRepository' type found. 에러가 발생합니다.
그래서 최종적으로 HelloSpringApplication을 실행시켜보면
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2023-03-17T22:02:24.272+09:00 ERROR 20624 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in hello.hellospring.SpringConfig required a bean of type 'hello.hellospring.repository.MemberRepository' that could not be found.
Action:
Consider defining a bean of type 'hello.hellospring.repository.MemberRepository' in your configuration.
Process finished with exit code 1에러가 발생합니다.
@Transactional
public class MemberService {
private MemberRepository memberRepository;
public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
/*
* 회원 가입
* */
public Long join(Member member) {
// 같은 이름이 있는 중복 회원 X
validateDuplicateMember(member);
memberRepository.save(member);
return member.getId();
}
private void validateDuplicateMember(Member member) { // 중복 회원 검증 함수
memberRepository.findByName(member.getName())
.ifPresent(m -> {
throw new IllegalStateException("이미 존재하는 회원입니다.");
});
}
/*
* 전체 회원 조회
* */
public List<Member> findMembers() {
List<Member> all = memberRepository.findAll();
return memberRepository.findAll();
}
/*
* 특정 회원 조회
* */
public Optional<Member> findOne(Long memberId) {
return memberRepository.findById(memberId);
}
}MemberService에 있는 애노테이션은 다 제거했는데 왜 오류가 발생하는지 모르겠습니다.
답변 2
0
안녕하세요. dfada dfamkl님, 공식 서포터즈 codesweaver입니다.
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
구글 드라이브 업로드 방법 링크
주의: 업로드시 권한 문제 꼭 확인해주세요
감사합니다.
0
안녕하세요, dfada dfamkl 님! 공식 서포터즈 codesweaver 입니다.
@Autowired 는 스프링 컨테이너가 관리하는 객체만 주입받을 수 있습니다.
MemberRepository 를 주입받으려면 그 클래스에 @Repository 를 붙이는 방법을 사용하세요.
감사합니다.
0
@Repository
public interface MemberRepository {
Member save(Member member);
Optional<Member> findById(Long id);
Optional<Member> findByName(String name);
List<Member> findAll();
}
@Configuration
public class SpringConfig {
private final MemberRepository memberRepository;
@Autowired
public SpringConfig(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
@Bean
public MemberService memberService() {
return new MemberService(memberRepository);
}
}
@Repository를 붙이고 실행을 해봤는데
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2023-03-19T17:20:21.429+09:00 ERROR 14652 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in hello.hellospring.SpringConfig required a bean of type 'hello.hellospring.repository.MemberRepository' that could not be found.
Action:
Consider defining a bean of type 'hello.hellospring.repository.MemberRepository' in your configuration.
위에 에러가 발생하는데 어떻게 해야 하나요?
..
0
82
2
Unused property.....
0
104
2
project JDK is misconfigured
0
137
2
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
0
83
2
단위/통합 테스트 버전충돌 문제
0
91
2
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
0
231
1
왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?
0
105
2
윈도우 build test오류 질문
1
103
2
테스트 관련 공부에 대한 조언을 얻고 싶습니다
0
102
2
테스트 실행 시 에러 질문
0
294
1
name을 통한 비교와 객체를 통한 비교
0
77
1
빌드 후 libs 없음
1
132
1
윈도우 gradlew.bat 에러
0
169
1
@PostMapping("/members/new")가 동작하지 않습니다
0
91
1
java static class와 kotlin class
0
79
1
스프링 DB연결
0
128
1
소요 시간
0
89
2
ddl.sql에 빨간 밑줄
1
102
2
welcome page 에러
0
185
3
잘 모르겠습니다.
0
164
2
fail을 똑같이 쳤는데 오류가 발생해요
0
159
2
index.html Welcome page
0
127
1
프로젝트 gradle-groovy ?
0
377
1
테스트코드 메서드명 한글
0
205
2





