SSM整合遇到的问题,非常干货,希望能帮助到您~

你们好,我是金金金。

image.png

无法自动装配

image.png

  • 配置类已经配置了扫描

image.png

那是什么原因导致?

image.png

解决

  • 很明显位置都不在一起,需要更改。
    image.png

结果类型不匹配select id=“selectEmployeeByCondition”

image.png

什么原因导致?

  • 这个是因为我建立了很多子模块 名字一样导致找到别的包下面去了

解决

  • 更改名称即可

image.png

java.sql.SQLException: url not set

image.png

什么原因导致?

  • 当你在Spring配置类中添加了sqlSessionFactoryBeanmapperScannerConfigurer配置方法时,可能会导致@Value注解读取不到值为null的问题。这是因为SqlSessionFactoryBeanMapperScannerConfigurer是基于MyBatis框架的配置,它们的初始化顺序可能会导致属性注入的问题。

    SqlSessionFactoryBeanMapperScannerConfigurer在配置类中通常是用来配置MyBatis相关的Bean,例如数据源、事务管理器、Mapper扫描等。这些配置类通常在@Configuration注解下定义,并且使用@Value注解来注入属性值。

    当配置类被加载时,Spring容器会首先处理Bean的定义和初始化,其中包括sqlSessionFactoryBeanmapperScannerConfigurer的初始化。在这个过程中,如果@Value注解所在的Bean还没有被完全初始化,可能会导致注入的属性值为null。

解决

  • 分成两个配置类独立配置,互不影响,数据库提取一个配置类,mybatis提取一个配置类即可解决!

数据库配置类(DataSourceJavaConfig.java

@Configuration
@PropertySource("classpath:jdbc.properties")
public class DataSourceJavaConfig {


    @Value("${jdbc.user}")
    private String user;
    @Value("${jdbc.password}")
    private String password;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.driver}")
    private String driver;


    //数据库连接池配置
    @Bean
    public DataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUsername(user);
        dataSource.setPassword(password);
        dataSource.setUrl(url);
        dataSource.setDriverClassName(driver);
        return dataSource;
    }

}

mybatis配置类(MapperJavaConfig.java

@Configuration // 配置类
public class MapperJavaConfig {
/**
   * 配置SqlSessionFactoryBean,用于创建SqlSessionFactory。
   * 这个方法需要一个DataSource作为参数,用来设置SqlSessionFactoryBean的dataSource属性。
   * 它还从类路径下的"mybatis-config.xml"文件中加载MyBatis的配置。
   *
   * @param dataSource 数据源对象,用于数据库连接。
   * @return SqlSessionFactoryBean配置对象,可用于创建SqlSessionFactory。
   */
  @Bean
  public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
    SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
    sqlSessionFactoryBean.setDataSource(dataSource); // 设置数据源

    Resource resource = new ClassPathResource("mybatis-config.xml"); // 加载配置文件
    sqlSessionFactoryBean.setConfigLocation(resource);
    return sqlSessionFactoryBean;
  }
  /**
   * 配置MapperScannerConfigurer,用于扫描指定包下的Mapper接口。
   * 该方法不接受任何参数,返回一个配置好的MapperScannerConfigurer实例。
   *
   * @return MapperScannerConfigurer 配置了基础包名的MapperScannerConfigurer实例。
   */
  @Bean
  public MapperScannerConfigurer mapperScannerConfigurer() {
    MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
    mapperScannerConfigurer.setBasePackage("com.yjx.mapper"); // //设置mapper接口和xml文件所在的共同包
    return mapperScannerConfigurer;
  }
}

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘javax.sql.DataSource’ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

  • 意思是:没有类型为“javax.sql”的合格bean。数据源可用:预计至少有1个bean符合自动候选条件

什么原因导致?

  • 因为第3点我拆成了两个配置文件,导致sqlSessionFactoryBean方法里面找不到dataSource了

解决

image.png

  • 编写有误还请大佬指正,万分感谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/487470.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于tcp协议的网络通信(将服务端守护进程化)

目录 守护进程化 引入 介绍 如何实现 思路 接口 -- setsid 注意点 实现代码 daemon.hpp log.hpp 运行情况 前情提要 -- 前后台任务介绍(区别命令),sessionsid介绍,session退出后的情况(nuhup,终端进程控制组),任务进程组概念,任务与进程组的关系,-bash介绍-CSDN博客…

最详细的ubuntu 安装 docker教程

Docker是一种流行的容器化平台,它能够简化应用程序的部署和管理。本文将介绍在Ubuntu操作系统上安装Docker的步骤,以便我们可以开始使用Docker来构建和运行容器化应用程序。 系统版本 本文以Ubuntu20.05系统为例安装docker,Ubuntu官方下载地…

输出当前时间

用途:在项目中一些属性中设置当前时间 实例代码 import java.time.LocalDateTime; import java.time.format.DateTimeFormatter;public class time {public static void main(String[] args){LocalDateTime china LocalDateTime.now(); DateTimeFormatter forma…

函数作用域和块级作用域:JavaScript中的变量作用域解析

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

知识图谱操作的探索与利用

目录 前言1 搜索(Search)1.1 基于关键词搜索1.2 属性搜索1.3 模式匹配 2 过滤(Filtering)2.1 属性过滤2.2 关系过滤 3 引导(Guidance)3.1 相关实体推荐3.2 路径推荐 4 合并(Merging)…

OpenLayers基础教程——WebGLPoints图层样式的设置方法

1、前言 前一篇博客介绍了如何在OpenLayers中使用WebGLPoints加载海量数据点的方法,这篇博客就来介绍一下WebGLPoints图层的样式设置问题。 2、样式运算符 在VectorLayer图层中,我们只需要创建一个ol.style.Style对象即可,WebGLPoints则不…

【c++】类和对象(三)构造函数和析构函数

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章我们带来类和对象重要的部分,构造函数和析构函数 目录 1.类的6个默认成员函数2.构造函数2.1构造函数其他特性 3.构析函数3.1特性:…

03课程发布模块课程预览

课程预览界面 界面原型 课程在发布前需要运营方进行审核,作为课程制作方即教学机构发布课程前可以通过课程预览功能查看课程详情界面,及时修改页面中的内容排版和违规问题 课程预览就是把课程的相关信息进行整合然后在课程预览界面进行展示&#xff0…

为jupyter安装和使用不同的python版本

安装好jupyter后,发现为默认的python3,想要切换到python3.10, 1.创建新环境python310 conda create -n python310 python3.10 2.进入新环境python310 conda activate python310 3.下载jupyter notebook conda install jupyter notebook…

802.1X网络访问控制协议

802.1X是一种由IEEE(电气和电子工程师协会)制定的网络访问控制协议,主要用于以太网和无线局域网(WLAN)中基于端口的网络接入控制。802.1X协议通过认证和授权机制,确保只有合法的用户和设备才能够接入网络&a…

Facebook如何使用增强技术提升广告效果?

AR in AD - case study 脸书2021年宣布了引入AR的新方法,以推动其应用套件中的产品发现和购买。但他们首先考虑是技术。据脸书称,技术一直是增强现实在其应用程序中更广泛使用的主要障碍。这就是为什么它现在正在做出改变,使企业主和广告商更…

OpenHarmony 源码解析之SystemUi—Statusbar(TS)

作者:董伟 简介 SystemUI应用是OpenHarmony中预置的系统应用,为用户提供系统相关信息展示及交互界面,包括系统状态、系统提示、系统提醒等,例如系统时间、电量信息。 本文主要分析batterycomponent、clockcomponent、wificompo…

2024年3月26日 十二生肖 今日运势

小运播报:2024年3月26日,星期二,农历二月十七 (甲辰年丁卯月己丑日),法定工作日。 红榜生肖:鸡、鼠、猴 需要注意:马、狗、羊 喜神方位:东北方 财神方位:…

[HGAME 2023 week2]Designer

[HGAME 2023 week2]Designer 考点:XSS跨站脚本攻击,模板注入 代码审计 function auth(req, res, next) {const token req.headers["authorization"]if (!token) {return res.redirect("/")}try {const decoded jwt.verify(token,…

登录注册界面

T1、编程设计理工超市功能菜单并完成注册和登录功能的实现。 显示完菜单后&#xff0c;提示用户输入菜单项序号。当用户输入<注册>和<登录>菜单序号时模拟完成注册和登录功能&#xff0c;最后提示注册/登录成功并显示注册信息/欢迎XXX登录。当用户输入其他菜…

【随笔】Git -- 基本概念和使用方式(五)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

相机标定 手眼标定 网页版

欢迎使用&#xff0c;请移步ipv6 site (jah10527.github.io)

下载网页上的在线视频 网络视频 视频插件下载

只需要在浏览器上安装一个插件&#xff0c;就可以下载大部分的视频文件&#xff0c;几秒到一两个小时的视频&#xff0c;基本都不是问题。详细解决如下&#xff1a; 0、因为工作需要&#xff0c;需要获取某网站上的宣传视频&#xff0c;我像往常一样&#xff0c;查看视频的url…

C语言回顾笔记

1.变量 2.运算符 3.if判断 4.接力break 5.最大公约数 6.水仙花数 #include<stdio.h> int main(){int n;scanf("%d",&n);//根据输入的位数计算&#xff0c;如最小三位数100 int first 1;int i 1;while(i<n){first *10;i; }printf("first%d\n"…

数据分析POWER BI之power query

1.导入数据 ctrla全选--数据--获取数据--其他来源--来自表格/区域 导入数据&#xff0c;进入编辑模式 2.整理与清除 清除&#xff1a;删除所选列的非打印字符 转换--格式--清除 修整&#xff1a;删除前面和后面的空格 转换---格式---修整&#xff08;修整后前面后面的空格没有了…