일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 성능최적화
- 레이아웃쪼개기
- 개발콘텐츠
- typescript
- click and drag
- 공통컴포넌트
- CSS
- 타입좁히기
- 제네릭
- 커스텀
- const 단언문
- NonNullable
- 누구나 자료구조와 알고리즘
- React Native
- utilty type
- 폰트적용하기
- TSDoc
- 티스토리꾸미기
- vue.js
- Chart.js
- 2022
- react
- returnType
- 리액트
- JS console
- React.js
- 반복줄이기
- javascript
- 타입스크립트
- reactjs
- Today
- Total
몽땅뚝딱 개발자
[JAVA] Field mapper in com.service.xxx.* required a bean of type 'com.mapperxxx.*' that could not be found 에러해결 본문
[JAVA] Field mapper in com.service.xxx.* required a bean of type 'com.mapperxxx.*' that could not be found 에러해결
레오나르도 다빈츠 2021. 6. 4. 13:12
API Swagger 프로젝트를 만들면서 mapper를 못 찾는 문제가 생겼다.
1월에는 이거 세팅하는데 10분도 안 걸렸는데(ㅠ) 진짜 똑같이 만들고있는데 자꾸 에러가 났다.
어노테이션, Bean, application.properties, pom.xml 등 설정한 부분을 제대로 적었는지 보고
오타가 있는지 꼼꼼히 살펴도 문제가 없고 문제가 없어야했는데 자꾸 mapper를 찾지 못하는 것이다.
내가 시도해 본 방법은
1. mainApplication의 @SpringBootApplication 어노테이션 옆에 basePakage를 지정해준다.
2. mainApplication에 @ComponentScan 어노테이션을 달고 옆에 basePakage를 지정해준다.
3. @MapperScan을 달아본다.
4. @Repository를 달아본다.
5. Swagger의 버전을 올려보고 낮춰본다. (관계가 없었지만 지푸라기 잡는 심정으로 시도해 봄,,)
하지만 전혀 문제가 해결되지않았고, 그저 제발 어이없는 실수만 아니길 빌고 또 빌었건만
에러
Field mapper in com.service.xxx.* required a bean of type 'com.mapperxxx.*' that could not be found
***************************
APPLICATION FAILED TO START
***************************
Description:
Field mapper in com.moddk.swagger.service.TodoServiceImpl required a bean of type 'com.moddk.swagger.mapper.TodoMapper' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.moddk.swagger.mapper.TodoMapper' in your configuration.
원인
하다하다 안되서 예전에 만들어 둔 API 프로젝트의 pom.xml 의존성을 죄다 복사해서 붙여넣었다.
그런데 Mapper 클래스에서만 어노테이션이 제대로 붙지 않았다.
어노테이션에서 문제가 생겼으면 어노테이션을 달고있는 모든 클래스에서 오류가 터져야하는데 왜 mapper만..?
아니길 바라며 봤더니 역시나 이상한 객체를 import하고 있었다.
@Mapper 어노테이션을 달 때 꼼꼼히 살피지않았던 것이다.
org.mapstruct.Mapper... mapstruct 너 뭔데..
뭔데 이름 똑같냐고...
어쨌든 org.apache.ibatis.annotations.mapper로 다시 import 했더니 문제가 해결되었다.
해결하는 내내 머리가 아팠지만 그래도 좋았던 점은 이리저리 문제가 될 만한 요소들을 살펴보는데
원인이 될 것 같은 곳을 보면서 '문제가 생길수가 없는데?'라는 생각을 한 것이다.
예전에도 똑같은 문제를 겪었는데 그때는 문제가 될 만한 요소를 짐작조차 하지 못하는 상태였다.
확실히 경험이 많아지니 생각의 범위도 넓어진 것을 체감했다. 좋다~!
개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.