Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [D:\PERSONAL\workspace\frnd_letter\frnd_letter\build\classes\java\main\com\server\frnd_letter\model\service\impl\MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'com.server.frnd_letter.model.dao.MemberDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1357)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1194)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782)
... 110 more
@Bean 주입도 모두 잘 했는데 위와 같은 오류가 발생. 그 이유는 MyBatis 버전 문제에 있었다.
현재 Spring Boot 3 버전을 사용하고 있었는데 MyBatis는 바보 같이 2 버전을 사용한 것... Maven Repository에서 Usage 수가 많다고 단순히 얘가 제일 안정적인가봐 얘 써야지! 하면 안 되고 버전에 맞게 사용해야 한다는 것을 배웠다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.1' // Spring Boot 버전이 3
id 'io.spring.dependency-management' version '1.1.5'
}
group = 'com.server'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
// MyBatis 버전도 3으로 사용해주기
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
'프레임워크 및 라이브러리 > Spring' 카테고리의 다른 글
RuntimeException : Cannot invoke "*" because "*" is null 해결 (0) | 2024.07.17 |
---|---|
[MyBatis] MyBatis 초기 설정하기 (2) | 2024.07.08 |
[MyBatis] argument type mismatch (0) | 2024.07.01 |
RestClient 자동 인코딩 (공공데이터 API Key Error) (0) | 2024.04.12 |
WebClient를 사용하지 않게 된 이유, 그리고 RestClient (1) | 2024.03.27 |