目录

  • 一、问题描述
  • 二、场景还原
  • 三、原因分析
  • 四、解决方案
  • 五、拓展知识
  • 参考文献

一、问题描述

在微服务项目中的公共模块进行了Mybatis Plus配置,创建了配置类并添加了@Configuration注解,其他模块引入该模块后不生效
我这里是在Mybatis Plus公共模块中注入了自定义SQL方法,测试模块获取失败

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

在这里插入图片描述


二、场景还原

前情提要:【抽丝剥茧知识讲解】【沉浸式解决问题】自定义MyBatis-Plus 3.5.12中的BaseMapper,并实现真正的批量插入
在文章的最后单独创建了一个模块配置Mybatis-plus,在一个模块内测试没问题,在其他模块测试时就获取不到了


三、原因分析

spring boot启动需要一个启动类,上面有@SpringBootApplication注解,但是该启动类启动时只扫描自己目录下的各种bean,引入的依赖中的正常是不自动装载的


四、解决方案

给公共模块中的bean设置成自动配置就好了

在公共模块的resources目录下创建固定目录
在这里插入图片描述

输入目录名META-INF后回车

META-INF

在这里插入图片描述
继续在META-INF目录下创建spring,要分开创建

spring

在这里插入图片描述
再创建文件
在这里插入图片描述

输入文件名org.springframework.boot.autoconfigure.AutoConfiguration.imports后回车

org.springframework.boot.autoconfigure.AutoConfiguration.imports

在这里插入图片描述
右键配置类复制类路径
在这里插入图片描述
粘贴到org.springframework.boot.autoconfigure.AutoConfiguration.imports中,如果有其他的需要自动配置的bean粘贴在下面即可
在这里插入图片描述
再次运行就注入成功了

@SpringBootTest
public class UserTest {@AutowiredUserMapper userMapper;@AutowiredIUserService userService;void truncate() {userMapper.truncateTable(); // 每次测试前情况表}List<User> userList() {List<User> userList = new ArrayList<>();for (int i = 0; i < 300000; i++) {User user = new User();user.setName("姓名"+i);userList.add(user);}return userList;}@Testvoid test3() {truncate();StopWatch stopWatch = new StopWatch();stopWatch.start();userService.saveBatch(userList());stopWatch.stop();System.out.println(stopWatch.getTotalTimeMillis());}

在这里插入图片描述

五、拓展知识

SpringBoot提供了SPI扩展的方式引入其他依赖中的Bean,即自动装配,SpringBoot2.7以前可以通过配置META-INF/spring.factories文件,
SpringBoot2.7以后可以通过配置META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,不过SpringBoot2.7以后为了兼容以前的版本习惯,依然可以配置META-INF/spring.factories

参考文献

SpringBoot自动配置原理:@EnableAutoConfiguration解析


喜欢的点个关注吧><!祝你永无bug!

/*_ooOoo_o8888888o88" . "88(| -_- |)O\  =  /O____/`---'\____.'  \\|     |//  `./  \\|||  :  |||//  \/  _||||| -:- |||||-  \|   | \\\  -  /// |   || \_|  ''\---/''  |   |\  .-\__  `-`  ___/-. /___`. .'  /--.--\  `. . __."" '<  `.___\_<|>_/___.'  >'"".| | :  `- \`.;`\ _ /`;.`/ - ` : | |\  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^佛祖保佑       永无BUG
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88574.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88574.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/88574.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL进阶:CASE表达式

目录 1、用一条SQL语句进行不同条件的统计 建表语句&#xff08;MySQL8&#xff09;&#xff1a; 录入数据&#xff1a; *按性别统计SQL 输出结果&#xff08;行列转换&#xff09; 2、在UPDATE语句里进行条件分支 建表语句&#xff08;MySQL8&#xff09;&#xff1a;…

哪四款AI工具让3D人物手办制作如此简单?

在当今数字化时代&#xff0c;AI技术的飞速发展为我们的生活带来了诸多便利和惊喜。其中&#xff0c;AI生成3D人物手办工具的出现&#xff0c;让我们能够轻松地将自己的创意和想象转化为实体手办&#xff0c;满足了众多手办爱好者的个性化需求。今天&#xff0c;我将为大家推荐…

Docker高级管理--Dockerfile镜像制作

目录 一:Docker 镜像管理 1:Docker 镜像结构 2:Dockerfile介绍 二:Dockerfile 语法基础 1:基础指令 2:环境设置指令 3:文件操作指令 4:执行命令指令 5:网络和暴露端口指令 6.容器挂载指令 三&#xff1a;dockerfile案例 1.构建nginx容器 一:Docker 镜像管理 Docker…

数字时代的“灵魂”之争:虚拟人形象的著作权困局与破局之道

首席数据官高鹏律师数字经济团队创作&#xff0c;AI辅助。 一、虚拟人的“数字生命”&#xff1a;一场关于“灵魂”的商业博弈 当一个虚拟偶像的“眼神”被复刻成千万个相似的数字面孔&#xff0c;当一段虚拟主播的“声音”被拆解为可交易的数据碎片——我们正在见证一个“数…

小型CI/CD搭建(TODO)

1 方案 因为是在国内&#xff0c;所以gitbub Actions&#xff0c;​​Azure DevOps​这些就直接拜拜了。 目前主流的大概是三种&#xff1a; 1 阿里云效/腾讯云CODING 2 GitLab CE GitLab Runner 3 Gitee Jenkins deepeseek比较了一下如下&#xff1a; 阿里云效 vs Git…

Android Studio flutter项目运行、打包时间太长

Android Studio&#xff1a;Android Studio Meerkat Feature Drop | 2024.3.2 Patch 1 flutter Sdk&#xff1a;3.29.3 系统&#xff1a;windows flutter sdk从2.10.5升级到3.29.3&#xff0c;但是Flutter 3.16开始新增了使用 Gradle声明式 plugins {} 块&#xff0c;gradle文…

【OpenGL学习】(六)图形添加纹理

文章目录 【OpenGL学习】&#xff08;六&#xff09;图形添加纹理纹理环绕纹理过滤纹理颜色与顶点颜色混合 OpenGL纹理介绍&#xff1a;https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 【OpenGL学习】&#xff08;六&#xff09;图形添加纹理 项目…

allure安装

一、安装java 需要安装java环境&#xff0c;不安装的话在运行前会报错下列问题&#xff08;前提是安装了allure未安装java&#xff09; 1.官网地址&#xff1a;https://www.oracle.com/ 2.点击”Download Java“ 3.选择JDK正式版本&#xff08;需要jdk1.8&#xff09; 4.选择W…

SpringBoot基于JavaWeb的城乡居民基本医疗信息管理系统

概述 一个基于SpringBoot框架开发的JavaWeb医疗信息管理系统&#xff0c;采用了现代化的技术架构&#xff0c;功能全面&#xff0c;非常适合作为学习项目或二次开发的基础。 主要内容 该系统主要包含以下核心功能模块&#xff1a; ​​用户管理模块​​ 实现管理员、医生、…

SQL变量声明与赋值 分支 循环

– 变量 分支 循环 – declare 变量名 数据类型 – declare 关键字&#xff0c;作用声明变量 – 变量名&#xff1a;以开头 – 数据类型&#xff1a;数据库中支持的数据类型&#xff1a;int varchar(n) text char(n) nvarchar(n) nchar(n) declare name varchar(255)– 定义多…

AWS S3 可观测性最佳实践

AWS S3 介绍 AWS S3&#xff08;Amazon Simple Storage Service&#xff09;是一种可扩展的对象存储服务&#xff0c;提供高可用性、持久性和安全性。它允许用户存储和检索任意数量的数据&#xff0c;并通过简单的 Web 服务接口访问这些数据。S3 支持多种存储类别&#xff0c;…

Ubuntu下布署mediasoup-demo

一、引言 mediasoup是一个强大的SFU架构的WebRTC流媒体服务器&#xff0c;凭借其多功能性、高性能和可扩展性&#xff0c;mediasoup成为构建多方视频会议和实时流媒体应用程序的完美选择。它具有联播、SVC、传输BWE和更多尖端功能。本文介绍了mediasoup-demo在Ubuntu下的布署。…

【JVS更新日志】物联网、智能排产APS、企业计划、规则引擎6.25更新说明!

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&…

解决git pull,push 每次操作输入账号密码问题

服务器每次git pull 的时候都需要输入账号密码&#xff0c;一劳永逸解决它。 解决方案&#xff1a; 找到项目下 .git /config 文件&#xff0c;然后打开&#xff0c;编辑 [rootiZbp11b24d3d7nc8uvjx9mZ .git]# ls branches config description FETCH_HEAD HEAD hooks i…

Netty:深入解析AbstractByteBufAllocator架构设计

AbstractByteBufAllocator 类结构分析 类结构概览 public abstract class AbstractByteBufAllocator implements ByteBufAllocator {// 静态常量static final int DEFAULT_INITIAL_CAPACITY 256;static final int DEFAULT_MAX_CAPACITY Integer.MAX_VALUE;// ...其他常量//…

Java 日志管理与分析

为什么需要日志 ■ 发⽣了什么&#xff08;What&#xff09;。 ■ 何时发⽣的&#xff08;When&#xff09;。 ■ 发⽣于何处&#xff08;Where&#xff09;。 ■ 谁参与其中&#xff08;Who&#xff09;。 ■ 参与者来源&#xff08;第⼆个Where&#xff0c;注意与上⾯的Wher…

bmc TrueSight 监控mysql配置

bmc TrueSight 监控mysql配置 1.将pat加入mysql组 useradd pat;echo patpassword|passwd --stdin pat usermod -aG mysql pat2.设置环境变量 查看文件是否存在[rootu1acmsdp01 ~]# find / -name mysql.sock /var/lib/mysql/mysql.sock ^C [rootu1acmsdp01 ~]# cd /var/lib/my…

WinAppDriver 自动化测试:C#篇

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】

zlmediakit webrtc搭建使用

webrtc 编译与使用 | ZLMediaKit 官方文档参考 编译机器&#xff1a; centos 7.6 gcc 版本 10.1.0 (GCC) cmake version 3.23.0web播放rtsp流视频&#xff0c;使用webrtc毫秒级延迟_webrtc播放rtsp流-CSDN博客 依赖准备 openssl 安装 (openssl 版本要求 1.1 以上) 我的…

Linux下使用docker nginx部署vue前端项目工程

1、使用Docker和Nginx部署Vue项目的步骤 1、准备好VUE项目&#xff0c;已打包编译 2、docker环境已完成安装 3、本地环境上创建nginx目录&#xff0c;下包括conf&#xff0c;html&#xff0c;logs目录。用于容器映射&#xff08;其实是方便修改文件&#xff0c;因为在容器中…