liyongscys / mybatis-plus-graalvm-sample

Mybatis Plus Demo for integrating mybatis-spring-native
3 stars 2 forks source link

请教,增加service层之后,无法运行。需要怎么解决了 #1

Open fushun1990 opened 1 year ago

fushun1990 commented 1 year ago

2023-01-03 08:09:05.814 DEBUG 1 --- [ main] c.b.m.e.s.MybatisSqlSessionFactoryBean : Parsed mapper file: 'class path resource [mapper/user/TestMapper.xml]' | |. __ | | | |\/|)(| | |\ |)|||_\ / |
3.5.3.1 2023-01-03 08:09:05.819 WARN 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type '?' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 2023-01-03 08:09:05.819 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2023-01-03 08:09:05.823 ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type '?' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.aot.beans.factory.InjectedFieldResolver.resolve(InjectedFieldResolver.java:50) ~[na:na] at org.springframework.aot.beans.factory.InjectedElementResolver.resolve(InjectedElementResolver.java:35) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:0.12.1-SNAPSHOT] at org.springframework.aot.beans.factory.InjectedElementResolver.invoke(InjectedElementResolver.java:53) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:0.12.1-SNAPSHOT] at com.baomidou.mybatisplus.samples.quickstart.controller.ContextBootstrapInitializer.lambda$registerUserController$2(ContextBootstrapInitializer.java:22) ~[na:na] at org.springframework.aot.beans.factory.BeanDefinitionRegistrar$ThrowableFunction.apply(BeanDefinitionRegistrar.java:294) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:0.12.1-SNAPSHOT] at org.springframework.aot.beans.factory.BeanDefinitionRegistrar.lambda$instanceSupplier$0(BeanDefinitionRegistrar.java:115) ~[na:na] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1249) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1191) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[na:na] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:2.7.1] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:2.7.1] at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:2.7.1] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:2.7.1] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:2.7.1] at com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication.main(QuickstartApplication.java:14) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:na] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type '?' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.aot.beans.factory.InjectedFieldResolver.resolve(InjectedFieldResolver.java:50) ~[na:na] at org.springframework.aot.beans.factory.InjectedElementResolver.resolve(InjectedElementResolver.java:35) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:0.12.1-SNAPSHOT] at org.springframework.aot.beans.factory.InjectedElementResolver.invoke(InjectedElementResolver.java:53) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:0.12.1-SNAPSHOT] at com.baomidou.mybatisplus.extension.service.impl.ContextBootstrapInitializer.lambda$registerUserServiceImpl$1(ContextBootstrapInitializer.java:14) ~[na:na] at org.springframework.aot.beans.factory.BeanDefinitionRegistrar$ThrowableFunction.apply(BeanDefinitionRegistrar.java:294) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:0.12.1-SNAPSHOT] at org.springframework.aot.beans.factory.BeanDefinitionRegistrar.lambda$instanceSupplier$0(BeanDefinitionRegistrar.java:115) ~[na:na] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1249) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1191) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.aot.beans.factory.InjectedFieldResolver.resolve(InjectedFieldResolver.java:43) ~[na:na] ... 23 common frames omitted Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type '?' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1801) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1357) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[com.baomidou.mybatisplus.samples.quickstart.QuickstartApplication:5.3.21] at org.springframework.aot.beans.factory.InjectedFieldResolver.resolve(InjectedFieldResolver.java:43) ~[na:na] ... 40 common frames omitted

image image image
liyongscys commented 1 year ago

暂时没有好的解决办法 一种方式: 1、修改mybatis-plus 的ServiceImpl,取消里面的Field 方式注入的baseMapper,实际就是删除注解AutoWired 也可以复制源码修改,然后放入自己的工程中,业务service继承这个类 2、在子类中通过Set注入方式对父类的baseMapper赋值 比如 在UserService 增加如下代码: @Autowired public void setBaseMapper(UserMapper baseMapper) { this.baseMapper = baseMapper; }