발생한 에러
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'boardMapper' defined in file [D:~~~~~\mapper\BoardMapper.class]: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:858) ~[spring-beans-6.2.0.jar:6.2.0]
at org.springframework.beans.factory.support.AbstractBeanFactory.getType(AbstractBeanFactory.java:742) ~[spring-beans-6.2.0.jar:6.2.0]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAnnotationOnBean(DefaultListableBeanFactory.java:765) ~[spring-beans-6.2.0.jar:6.2.0]
at org.springframework.boot.sql.init.dependency.AnnotationDependsOnDatabaseInitializationDetector.detect(AnnotationDependsOnDatabaseInitializationDetector.java:36) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor.detectDependsOnInitializationBeanNames(DatabaseInitializationDependencyConfigurer.java:152) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor.postProcessBeanFactory(DatabaseInitializationDependencyConfigurer.java:115) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:363) ~[spring-context-6.2.0.jar:6.2.0]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:197) ~[spring-context-6.2.0.jar:6.2.0]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:791) ~[spring-context-6.2.0.jar:6.2.0]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:609) ~[spring-context-6.2.0.jar:6.2.0]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.4.0.jar:3.4.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.4.0.jar:3.4.0]
at kr.co.gmcorp.GmcorpApplication.main(GmcorpApplication.java:11) ~[classes/:na]
에러 해결 시도
- Mybatis를 적용하던 중 위와 같은 에러를 마주하게 됨
- ChatGPT는 다음과 같이 해결하라고 제시를 하였으나 해결 실패
1. mybatis-config.xml 파일의 <mappers> 태그 안에 <mapper resource="xml 파일 경로"> 또는 <package name="mapper패키지 경로">를 삭제
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
<!-- <mappers> -->
<!-- <mapper resource="mybatis/mapper/boardMapper.xml"/> -->
<!-- <package name="kr.co.gmcorp.mapper" /> -->
<!-- </mappers> -->
</configuration>
2. @SpringBootApplication 클래스에 @MapperScan을 추가
@SpringBootApplication
@MapperScan("kr.co.gmcorp.mapper")
public class GmcorpApplication {
public static void main(String[] args) {
SpringApplication.run(GmcorpApplication.class, args);
}
}
해결
- 구글링에서 찾아보니 문제가 발생한 원인은 버전 충돌이라고 함
- 나의 스프링 버전은 3.4.0 버전이였고 mybatis 의존성은 아래와 같았음
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.1</version>
</dependency>
- 하지만, 스프링부트 3.2 버전 이상은 Mybatis 스타터 버전을 Spring Boot 버전에 맞게 수정해야한다고 함
- 다음과 같이 3.0.1 버전 → 3.0.3 버전으로 변경하여 해결 완료
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
https://jjh-blog.tistory.com/241
'Various Error' 카테고리의 다른 글
[삭제] 최악의 프로그램 Fasoo DRM (0) | 2025.01.04 |
---|---|
[Java/Stream API] toList() is undefined 에러 (0) | 2024.12.17 |
[Eclipse] Lombok 설정 시 주의 사항 (0) | 2024.12.10 |
[STS] JSP 파일 인식 불가 (0) | 2024.12.10 |
[STS] Invalid project description (0) | 2024.12.10 |