当前使用版本(必填,否则不予处理)
3.5.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
JDK17+SpringBoot3.0.4+MP3.5.3.1 继承BaseMapper后使用 启动报错
重现步骤(如果有就写完整)
无业务逻辑,上述版本配置启动报错
报错信息
XXXMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
Comment From: EddyChina
报错信息如下
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'textbookLevelRepository' defined in file [/Users/monster/IdeaProjects/lookahead/lookahead-management/mgt-domain/target/classes/org/lookahead/mgt/domain/repository/TextbookLevelRepository.class]: Unsatisfied dependency expressed through constructor parameter 1: Error creating bean with name 'textbookLevelMapper' defined in file [/Users/monster/IdeaProjects/lookahead/lookahead-management/mgt-persistence/target/classes/org/lookahead/mgt/persistence/mapper/TextbookLevelMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:793) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:242) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1344) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1188) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:961) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:915) ~[spring-context-6.0.2.jar:6.0.2]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:584) ~[spring-context-6.0.2.jar:6.0.2]
at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-3.0.0.jar:3.0.0]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730) ~[spring-boot-3.0.0.jar:3.0.0]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432) ~[spring-boot-3.0.0.jar:3.0.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-3.0.0.jar:3.0.0]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:150) ~[spring-boot-3.0.0.jar:3.0.0]
at org.lookahead.mgt.boot.LaMgtBoot.main(LaMgtBoot.java:22) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-3.0.0.jar:3.0.0]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'textbookLevelMapper' defined in file [/Users/monster/IdeaProjects/lookahead/lookahead-management/mgt-persistence/target/classes/org/lookahead/mgt/persistence/mapper/TextbookLevelMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1405) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1325) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:880) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:784) ~[spring-beans-6.0.2.jar:6.0.2]
... 23 common frames omitted
Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
at org.springframework.util.Assert.notNull(Assert.java:204) ~[spring-core-6.0.2.jar:6.0.2]
at org.mybatis.spring.support.SqlSessionDaoSupport.checkDaoConfig(SqlSessionDaoSupport.java:125) ~[mybatis-spring-3.0.1.jar:3.0.1]
at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:73) ~[mybatis-spring-3.0.1.jar:3.0.1]
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) ~[spring-tx-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1797) ~[spring-beans-6.0.2.jar:6.0.2]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1747) ~[spring-beans-6.0.2.jar:6.0.2]
... 34 common frames omitted
Comment From: xiaoyaobishizhe
最新版本的MyBatisPlus还不支持SpringBoot3。
Comment From: EddyChina
最新版本的MyBatisPlus还不支持SpringBoot3。
非最新版本呢?
Comment From: xiaoyaobishizhe
都一样,依赖的都是SpringBoot2,不能直接换成SpringBoot3。
Comment From: xiaoyaobishizhe
SpringBoot3更新了配置类扫描机制,所以扫描不到 sqlSessionFactory ,也就无法注入。
Comment From: a496046961
请问什么时候支持springboot3 + jdk 17
Comment From: timnick-snow
请问什么时候支持springboot3 + jdk 17
其实是支持 springboot3 + jdk 17,我目前写的一些小项目,mock服务都是基于这个的,没问题。只是不支持AOT和native image. 底层的mybatis对此还没有支持,所以mp也没办法支持
Comment From: a496046961
请问什么时候支持springboot3 + jdk 17
springboot3 + JDK 17,我我的小,模拟服务服务是是基于基于基于,没没基于基于这个的是基于基于基于没没没问题问题。。只是只是只是不不不支持不不支持 支持
您好,感谢你回复。目前AOT和native image 我都没有用到,可否优先提供CRUD的一些功能
Comment From: a496046961
请问什么时候支持springboot3 + jdk 17
其实是支持 springboot3 + jdk 17,我目前写的一些小项目,mock服务都是基于这个的,没问题。只是不支持AOT和native image. 底层的mybatis对此还没有支持,所以mp也没办法支持
您好,感谢你回复。目前AOT和native image 我都没有用到,可否优先提供CRUD的一些功能
Comment From: timnick-snow
请问什么时候支持springboot3 + jdk 17
其实是支持 springboot3 + jdk 17,我目前写的一些小项目,mock服务都是基于这个的,没问题。只是不支持AOT和native image. 底层的mybatis对此还没有支持,所以mp也没办法支持
您好,感谢你回复。目前AOT和native image 我都没有用到,可否优先提供CRUD的一些功能
参考示例工程 https://github.com/timnick-snow/sp3-mp-tiny-demo
Comment From: a496046961
请问什么时候支持springboot3 + jdk 17
其实是支持 springboot3 + jdk 17,我目前写的一些小项目,mock服务都是基于这个的,没问题。只是不支持AOT和native image. 底层的mybatis对此还没有支持,所以mp也没办法支持
您好,感谢你回复。目前AOT和native image 我都没有用到,可否优先提供CRUD的一些功能
参考示例工程 https://github.com/timnick-snow/sp3-mp-tiny-demo
感谢,我决定用jdk8 + springboot2.X了
Comment From: q920447939
我也是使用了JDK17+SpringBoot3.0.4+MP3.5.3.1。不管打不打native都启动不起来。
看群里有人可以跑起来,猜测是和多数据源(用的MP的多数据源功能)有关。
Comment From: EddyChina
请问什么时候支持springboot3 + jdk 17
其实是支持 springboot3 + jdk 17,我目前写的一些小项目,mock服务都是基于这个的,没问题。只是不支持AOT和native image. 底层的mybatis对此还没有支持,所以mp也没办法支持
您好,感谢你回复。目前AOT和native image 我都没有用到,可否优先提供CRUD的一些功能
参考示例工程 https://github.com/timnick-snow/sp3-mp-tiny-demo
感谢,我决定用jdk8 + springboot2.X了
可以自己实现sqlSessionTemplate暂时解决一下。等支持了去掉就好了。目前我是这么解决的。
Comment From: EddyChina
可以自己实现sqlSessionTemplate暂时解决一下。等支持了去掉就好了。目前我是这么解决的。
我也是使用了
JDK17+SpringBoot3.0.4+MP3.5.3.1。不管打不打native都启动不起来。看群里有人可以跑起来,猜测是和多数据源(用的MP的多数据源功能)有关。
Comment From: q920447939
可以自己实现sqlSessionTemplate暂时解决一下。等支持了去掉就好了。目前我是这么解决的。
我也是使用了
JDK17+SpringBoot3.0.4+MP3.5.3.1。不管打不打native都启动不起来。 看群里有人可以跑起来,猜测是和多数据源(用的MP的多数据源功能)有关。
大佬,自己实现sqlSessionTemplate需不需要注意什么地方?有Demo可以分享一下吗
Comment From: EddyChina
没啥特殊的 这是我的。 记得配置datasource ` @Bean(name = "globalConfig") public GlobalConfig globalConfig(@Qualifier("myBatisPlusMetaObjectHandler") MyBatisPlusMetaObjectHandler metaObjectHandler) { GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setMetaObjectHandler(metaObjectHandler); return globalConfig; }
@Bean
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource,
@Qualifier("globalConfig") GlobalConfig globalConfig) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
//添加分页功能================================================================================================
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
sqlSessionFactory.setPlugins(interceptor);
sqlSessionFactory.setGlobalConfig(globalConfig);
return sqlSessionFactory.getObject();
}
@Bean
@Primary
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean
@Primary
public DataSourceTransactionManager transactionManager(@Qualifier("dataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}`
可以自己实现sqlSessionTemplate暂时解决一下。等支持了去掉就好了。目前我是这么解决的。
我也是使用了
JDK17+SpringBoot3.0.4+MP3.5.3.1。不管打不打native都启动不起来。 看群里有人可以跑起来,猜测是和多数据源(用的MP的多数据源功能)有关。大佬,自己实现
sqlSessionTemplate需不需要注意什么地方?有Demo可以分享一下吗
Comment From: nieqiurong