勇敢尝鲜之Springboot3大坑-集成Mybatisplus报错:ddlApplicationRunner

勇敢尝鲜之Springboot3大坑-集成Mybatisplus报错:ddlApplicationRunner

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄

🌹简历模板、学习资料、面试题库、技术互助

🌹文末获取联系方式 📝


往期热门专栏回顾

专栏 描述
Java项目实战 介绍Java组件安装、使用;手写框架等
Aws服务器实战 Aws Linux服务器上操作nginx、git、JDK、Vue
Java微服务实战 Java 微服务实战,Spring Cloud ***flix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc等实战操作
Java基础篇 Java基础闲聊,已出HashMap、String、StringBuffer等源码分析,JVM分析,持续更新中
Springboot 从创建Springboot项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回、全局异常处理、Swagger文档
Spring MVC篇 从创建Spring MVC项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回
华为云服务器实战 华为云Linux服务器上操作nginx、git、JDK、Vue等,以及使用宝塔运维操作添加Html网页、部署Springboot项目/Vue项目等
Java爬虫 通过Java+Selenium+GoogleWebDriver 模拟真人网页操作爬取花瓣网图片、bing搜索图片等
Vue实战 讲解Vue3的安装、环境配置,基本语法、循环语句、生命周期、路由设置、组件、axios交互、Element-ui的使用等
Spring 讲解Spring(Bean)概念、IOC、AOP、集成jdbcTemplate/redis/事务等

前言

新到一台电脑,安装Docker Desktop,安装Idea,下载jdk21,初始化Springboot3项目,集成docker-***pose,集成pgsql,集成mybatis-plus。

在集成docker-***pose,导入pgsql包这些步骤都没有问题。在集成mybatis-plus之后出了问题(简单的增删改查业务逻辑已加入),启动不成功,报错信息如下:
【org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named ‘ddlApplicationRunner’ is expected to be of type ‘org.springframework.boot.Runner’ but was actually of type ‘org.springframework.beans.factory.support.NullBean’】

1、排查问题

项目已经有初始的业务CURD(在Springboot2.7 + JDK8 + pgsql + mybatisplus版本,已经成功验证过),使用的Springboot3 + JDK21 + docker-***pose + pgsql + mybatis-plus。

1.1、检查问题

排查jar包环境

	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
   <properties>
        <java.version>21</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

	<dependency>
       <groupId>***.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.5.4.1</version>
       <exclusions>
           <exclusion>
               <groupId>org.mybatis</groupId>
               <artifactId>mybatis-spring</artifactId>
           </exclusion>
       </exclusions>
    </dependency>
     
   <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>3.0.3</version>
   </dependency>
      

2、解决问题

解决办法是把【mybatis-plus-boot-starter】版本升级为3.5.5(有兴趣的可以看下源码,看看这2块的代码: ‘org.springframework.boot.Runner’ 、 ‘org.springframework.beans.factory.support.NullBean’)。

 		<dependency>
            <groupId>***.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.5</version>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis-spring</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>3.0.3</version>
        </dependency>

2.1、启动项目成功

把【mybatis-plus-boot-starter】版本升级为3.5.5之后,项目再次启动,可以在控制台看到项目启动成功,在8081端口提供http服务。

2.2、访问接口

通过查询name=admin,成功找到了数据库里的数据。

2.2.1、开启控制台SQL


总结

JDK21已经出了一段时间,未来我们的项目也都会往这个JDK21迁移,那不如现在就开始,把主流框架、业务都慢慢迁移过来,以备不时之需。而且JDK21也支持ZGC(ZGC(Z Garbage Collector)是Java虚拟机中的一种垃圾回收器,属于低延迟垃圾回收器),后面我们在来验证JDK21开启ZGC的效果。


资料获取,更多粉丝福利,关注下方公众号获取

转载请说明出处内容投诉
CSS教程_站长资源网 » 勇敢尝鲜之Springboot3大坑-集成Mybatisplus报错:ddlApplicationRunner

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买