【六】SpringBoot集成MyBatis-yml自动化配置原理详解

这篇具有很好参考价值的文章主要介绍了【六】SpringBoot集成MyBatis-yml自动化配置原理详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

SpringBoot集成MyBatis-yml自动化配置原理详解

        简介:spring boot整合mybatis开发web系统目前来说是市面上主流的框架,每个Java程序和springboot mybatis相处的时间可谓是比和自己女朋友相处的时间都多,但是springboot mybatis并没有得到你的真爱,因为你只是为了养活你女朋友而委曲求全的和spring boot mybatis假意相处。和spring boot mybatis 日夜相处你都不知道 spring boot 怎么和mybatis组合在一起的,yml文件里面的那些配置你都是百度之后复制粘贴进去的,却没有思考过为什么这么配置数据库就生效了?spring就可以加载mybatis了?接下来将会你逐个解释这些问题,缓解一下你和springboot mybatis 假意相处的尴尬。

一、springboot整合mybatis

首页搭建了这样一个工程:

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

注意pom.xml中加入以下依赖

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

接下来对代码和配置进行部分展示

启动类

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

UserController.java

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

 UserServiceImpl.java【六】SpringBoot集成MyBatis-yml自动化配置原理详解

 UserDao.java

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

Application.yml配置如下:

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

另外还需要编写一份UserMapper.xml文件,部分代码细节省略,至此工程搭建完成。

二、yml配置详解

项目搭建大家到网上找会有很多案例,简单的案例代码没有什么要讲解的,这里着重讲一下yml配置,很多人使用了很多年都还是不清楚yml里面为什么这么配置,比如spirng.datasources这个哪里来的?配置的参数怎么生效?

1、首先我们需要知道springboot自动装配的原理

springboot定义了一套接口规范,这套规范规定:springboot在启动时会扫描外部引用 jar 包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到。对于外部 jar 来说,只需要按照 springboot定义的标准,就能将自己的功能装置进 springboot。

2、我们看到有个端口配置

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

这里我们要看spring-boot-autoconfigure,找到META-INF\spring.factories,

找到自动加载的类中

org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration

我们可以看到这里自动加载了ServerProperties.class:

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

3、接下来我们看到有这一段配置

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

这些的话也是在spring-boot-autoconfigure中自动装配的

org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

可以看到自动加载了DataSourceProperties.class:

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

这些就是我们配置的数据库相关的配置了

4、接下来看到了数据源的配置

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

这个是通过第三方的starter加载进来的,我们在程序中引用了一个druid依赖:

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

同理我们找到META-INF\spring.factories文件可以发现自动加载了

com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure

可以看到这里自动加载了DruidDataSource.class:

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

这里DruidDataSource继承了DruidAbstractDataSource类,可以找到子类DruidDataSourceWrapper

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

都这里数据库连接池的配置也找到了。

5、接下来我们看一下mybatis的配置

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

这里我们需要找一下mybatis-spring-boot-autoconfigure,我们找到mybatis-spring-boot-starter源码包下面,找到META-INF\spring.factories

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

我们找到这个类

@org.springframework.context.annotation.Configuration

@ConditionalOnClass({ SqlSessionFactory.class, SqlSessionFactoryBean.class })

@ConditionalOnBean(DataSource.class)

@EnableConfigurationProperties(MybatisProperties.class)

@AutoConfigureAfter(DataSourceAutoConfiguration.class)

public class MybatisAutoConfiguration {}

如下MybatisProperties配置类:

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

这些对应yml中如下的配置:

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

6、最后还有一个分页插件的配置

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

这个和druid类似通过第三方的starter加载进来的,我们在程序中引用了一个pagehelper依赖

com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration

这里自动加载了一个PageHelperProperties.class

【六】SpringBoot集成MyBatis-yml自动化配置原理详解

到此springboot mybatis的配置就讲完了。文章来源地址https://www.toymoban.com/news/detail-499349.html

到了这里,关于【六】SpringBoot集成MyBatis-yml自动化配置原理详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 持续集成——App自动化测试集成实战

    1、减少错误和手动任务 2、及早发现并解决集成挑战 3、更短的交付周期 1、被测代码(存放于代码仓) 2、Jenkins节点机器以及运行环境 博客地址:https://blog.csdn.net/YZL40514131/article/details/130142810?spm=1001.2014.3001.5501 Pycharm拉取代码执行 命令行运行代码,并生成报告 pip freeze require

    2024年02月01日
    浏览(37)
  • 持续集成——web自动化测试集成实战

    减少错误和手动任务 及早发现并解决集成挑战 更短的交付周期 被测代码(存放于代码仓) Jenkins节点机器以及运行环境 博客地址:https://blog.csdn.net/YZL40514131/article/details/130142810?spm=1001.2014.3001.5501 当前项目在windows节点跑,所以需要在windows中配置各种环境变量 Chrome 浏览器和chr

    2023年04月24日
    浏览(37)
  • 自动化持续集成

    互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI) 持续集成指的是, 频繁地(一天多次)将代码集成到主干。 它的好处主要有两个:         1)快速发现错误。每完成一点更新,就集成到主干,可以快速

    2024年02月06日
    浏览(36)
  • 【云原生持续交付和自动化测试】5.2 自动化测试和集成测试

    往期回顾: 第一章:【云原生概念和技术】 第二章:【容器化应用程序设计和开发】 第三章:【基于容器的部署、管理和扩展】 第四章:【微服务架构设计和实现】 第五章:【5.1 自动化构建和打包容器镜像】 5.2.1 什么是自动化测试和集成测试? 云原生的自动化测试和集

    2024年02月14日
    浏览(48)
  • 自动化测试、压力测试、持续集成

    因为项目的原因,前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家,希望对需要的人有所帮助。 SoapUI 是一个开源测试工具,通过 soap/http 来检查、调用、实现 Web Service 的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使

    2024年02月04日
    浏览(50)
  • 自动化测试集成指南 -- 本地单元测试

    单元测试 (Unit Test) 是针对 程序的最小单元 来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。一个单元可能是 单个程序、类、对象、方法 等。 如何区分单元测试和集成测试,一般情况下,单元测试应该不依赖数据库,网络,I/O和其他模块,否则就是集成测

    2024年02月16日
    浏览(51)
  • 持续集成下接口自动化测试实践

    目录 :导读 引言 接口自动化测试工具介绍 接口自动化测试在持续集成中的运用 小结 目前很多持续集成项目都需要执行接口层的测试,当你了解其基本概念,理解了接口协议、如何传参、测试原理后,无需 掌握程序语言,使用 行业 内成熟的接口测试 工具,就 可 以快速地

    2023年04月26日
    浏览(36)
  • 通用技术 自动化测试与持续集成方案

    目录 前言: 传统接口测试 接口测试自动化 接口自动化的持续集成 在现代软件开发中,自动化测试和持续集成是两个不可或缺的环节。自动化测试可以提高测试效率、减少人工错误,并确保软件的质量。持续集成则可以帮助开发团队更快地集成和交付代码,提高开发效率和

    2024年02月16日
    浏览(35)
  • Jenkins结合gitlab自动化持续集成

    大家好,我是自动化测试老司机~ 最近在公司有负责搭建自动化测试环境,自动化脚本写好后,毋庸置疑是需要将自动化脚本进行持续集成测试,能够根据企业的定制化需求,通过Jenkins触发执行构建任务,定时执行自动化脚本等,今天就给大家介绍一下Jenkins结合gitlab进行自动

    2024年02月11日
    浏览(42)
  • 自动化生成代码:MyBatis 的 Generator与MyBatis-Plus 的 AutoGenerator

    自动化生成代码是现在一种非常常见的技术,它可以大大提高开发效率,减少重复劳动。而在 Java 开发中,MyBatis 是一个非常流行的 ORM 框架,而其中的 Generator 和 MyBatis-Plus 中的 AutoGenerator 是两个非常好用的自动化代码生成工具,下面我们来分别介绍一下它们的使用。 MyBati

    2024年02月03日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包