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.javaSpringBoot集成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-420737.html

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

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

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

相关文章

  • 【SpringBoot系列】读取yml文件的几种方式

    前言 在Spring Boot开发中,配置文件是非常重要的一部分,而yml文件作为一种常用的配置文件格式,被广泛应用于Spring Boot项目中。Spring Boot提供了多种方式来读取yml文件中的属性值,开发者可以根据具体的需求和场景选择合适的方式。本文将介绍Spring Boot读取yml文件的主要方式

    2024年02月05日
    浏览(45)
  • 【SpringBoot】读取application.yml配置中的三种方式

    applicaiton.yml BootValueApplicationTests.java 打印如下所示 注意的地方 当对应的值不存在时,系统会报错。我们可以给定一个默认值即可。 如下所示: 在这里,sys.noValue这个值是不存在的,我们可以给定一个默认值为123,当然,我们如果不指定默认值的,它的默认值为空字符串。 优

    2024年02月13日
    浏览(53)
  • 17、YML配置文件及让springboot启动时加载我们自定义的yml配置文件的几种方式

    其实本质和.properties文件的是一样的。 Spring Boot默认使用SnakeYml工具来处理YAML配置文件,SnakeYml工具默认就会被spring-boot-starter导入,因此无需开发者做任何额外配置。 YAML本质是JSON的超级,它在表示结构化文档时更有表现力。 ▲ properties文件使用 .分隔符 作为结构化的表现:

    2024年02月14日
    浏览(48)
  • 【SpringBoot】18张图,详解SpringBoot解析yml全流程

    前几天的时候,项目里有一个需求,需要一个开关控制代码中是否执行一段逻辑,于是理所当然的在 yml 文件中配置了一个属性作为开关,再配合 nacos 就可以随时改变这个值达到我们的目的,yml文件中是这样写的: 程序中的代码也很简单,大致的逻辑就是下面这样,如果取到

    2024年02月15日
    浏览(35)
  • 微服务: 04-springboot中rabbitmq的yml或properties配置,消息回收,序列化方式

    目录 1. 本文简介:  1.1 java序列化的缺点 --- 1.1.1 无法跨语言 ---1.1.2  易被攻击 --- 1.1.3 序列化后的流太大 --- 1.1.4 序列化性能太差 2. 配置总览 2.1  基础配置  2.2 连接重试配置  2.3  异常重试机制 2.4 确认模式(本篇是自动)  --- 2.4.1 如图所示 2.5 发送确认设置  --- 2.5.1 参数解释

    2024年02月04日
    浏览(44)
  • SpringBoot 集成 Mybatis

    (只有操作,没有理论,仅供参考学习) 1.1 数据库版本: 1.2 启动 mysql 服务: 1.3 新创建数据库 spring,并创建一个 user 表,user 表详情: 如下图: 2.1 使用 spring 官网页面创建工程(其他亦可),链接:Spring Initializr 创建 SpringBoot 工程,如下图: 2.2 用 IDEA 打开工程: 2.3 配置

    2024年02月16日
    浏览(51)
  • 1. Springboot集成Mybatis

    在深入理解mybatis源码之前,首先搭建mybatis的测试环境用于跟踪代码测试用。 下面介绍两种springboot集成mybatis运行环境的案例。一种是通过springboot包装mybatis的构建过程,一种是自行构建Mybatis的执行环境。 以查询user表为例,数据如下 1.1 创建表对应的bean 1.2 创建查询接口dao

    2023年04月19日
    浏览(40)
  • 【极光系列】SpringBoot集成Mybatis

    浅夏的猫 @shawsongyue 直接下载可用 https://gitee.com/shawsongyue/aurora.git 详细参考我的另外一遍博客: https://blog.csdn.net/weixin_40736233/article/details/135582926?spm=1001.2014.3001.5501 1. 处理依赖pom.xml 2. 处理数据库表 登录mysql数据库,创建表 tianchi_resource,并插入数据 3. 处理配置application.yml 4.创

    2024年01月17日
    浏览(52)
  • Springboot集成MyBatis进行开发

    引入相关的依赖 2.配置application.yml        application.java 3.建表 在数据库中创建相应的表 4.键实体 在.java文件中引入数据库表中的字段,创建无参,有参构造函数和getter、setter、toString方法。 5.开发dao mapper文件 Userdao.java:定义实现的方法 mapper文件:编写方法的实现 6.开发serv

    2023年04月12日
    浏览(37)
  • 深入解析Spring Boot集成MyBatis的多种方式

    🎉欢迎来到架构设计专栏~深入解析Spring Boot集成MyBatis的多种方式 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:架构设计 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平有限,如

    2024年02月04日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包