avatar
文章
87
标签
40
分类
24

首页
归档
分类
标签
友情链接
关于我
YangBao
搜索
首页
归档
分类
标签
友情链接
关于我

YangBao

mybatis本地缓存阅读
发表于2021-04-12|更新于2025-12-31|ORM框架|源码分析•框架
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 题记缓存这个知识点在许多地方都有的,利用到好的话,对系统的很多地方查询是有很大的提升的. 可以看到,MyBatis 也是有 cache 的,那MyBatis 是怎么利用这个缓存的呢? 在 INSERT/UPDATE/DELETE/SELECT中,是不是只有SELECT的时候用到了缓存,如果是 INSERT/UPDATE/DELETE 是否会对缓存有影响?可以看结果来分析,然后跟进源码来仔细分析. MyBatis 是分为 一级缓存 和 二级缓存的. 那么,我们就先从一级缓存开始. 一级缓存案例代码 : 这里我们是打印的查询sql的语句,再第二次再查询的时候,是 InputStream mybatisInputStream = Resources.getResourceAsStream("mybatis-config.xml");SqlSessi ...
mybatis中mapper文件阅读
发表于2021-04-09|更新于2025-12-31|ORM框架|源码分析•框架
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 题记MyBatis是如何对 Mapper 文件中的sql进行处理呢? 虽然上篇解析 mybatis-config.xml 是有进行说明的, 但是应该拿出来单独仔细解析下. 因为这个里面涉及到动态sql, 加上mapper文件自身也有很多标签内容,然后MyBatis是怎么读取出这些内容的呢?读取出来后,又是做了怎么样的处理, 然后达到了sql那种执行效果的呢? 意思也就是,Mapper + 动态sql , 内容还是有点多的, 并且也很重要, 是非常有必要拿出来单独的仔细讲解下的. Target在之前对标签的进行解析的时候,是有对 标签进行一个初步的解析. 然后里面其实是很多内容还没填补很详细,所以特意记录下对 详细操作的. 那么,下文就开始操作吧. org.apache.ibatis.builder.xml.XMLMapperBuilder#parse主要来看这段解析的代码 : public void parse ...
mybatis中config-xml代码阅读
发表于2021-04-06|更新于2025-12-31|ORM框架|源码分析•框架
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 题记对于配置文件的解析, 还是相对比较好理解的, 就是读取配置文件, 然后在代码需要的地方给使用到. 这里,可以扩展下, Spring / SpringBoot 等是怎么读取配置文件呢 ? 并且配置文件还是有 xml / properties/yaml 等格式的 , 其读取代码是怎么写的 ? 然后基于 阿波罗(携程开源) 的配置中心 , 其实现配置又是怎么实现的呢 ? 然后这里,看了 Mybatis 读取配置文件, 后续再出 Spring 配置文件的时候,如果二者读取配置进行对比, 你个人更倾向使用代码呢 ? 所以,这里就开启读取 Mybatis 是如何解析配置文件的操作. 配置文件这里的配置文件解读,是根据 MyBatis官网来一步一步的解析阅读. 如果有官网没有涉及到的,发现了也会在后续加上去的. 解析多行代码, 才能理解 何为优秀. 标签一 : propertiesorg.a ...
MyBatis工作流程分析
发表于2021-04-02|更新于2025-12-31|ORM框架|源码分析•框架
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 MyBatis 的工程流程分析MyBatis 是我们在学习Java框架,也就是学习完JavaWeb的知识后,要学习到的一个ORM的框架. 我也是学习&使用过后,再次对源码进行阅读的. 所以这篇文章记录 MyBatis 的一个 work flow. 先放上项目地址 : https://github.com/baoyang23/mybtatis-analysis/tree/master/mybatis-work-flow 有兴趣的同学,可以clone下来看看. 代码案例先放上案列的代码, 然后我们可以挨个的分析 public class InitHelloMyBatis { public static void main(String[] args) throws IOException { // 读取配置文件. InputStream mybatisI ...
SpringBoot创建Web环境
发表于2021-03-29|更新于2025-12-31|SpringBoot|源码分析•SpringBoot
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 SpringBoot创建Web环境启动一个SpringBoot项目就相当于启动了一个web项目, 内嵌的tomcat, 那 SpringBoot是怎么启动这个代码的呢? 所以还是需要去看下其底层是怎么走的实现的. 方法org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#onRefresh 当走 refresh 方法的时候, 如果只是单纯的Spring的话,那么这里就不会走到上面的子类. 如果是基于SpringBoot查看的代码,并且也引入了 web环境,那么走 refresh的之后,跟进 onRefresh 方法,就会走到这里来. @Override protected void onRefresh() { super.onRefresh(); try { ...
SpringBoot中BeanPostProcessor
发表于2021-03-26|更新于2025-12-31|SpringBoot|源码分析•SpringBoot
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 SpringBoot中BeanPostProcessorBeanPostProcessor 是在Spring中实例化bean的时候使用到的,也是对bean的一种扩展. 理解好 BeanPostProcessor是对理解好 bean 的初始化是很重要的. 每种BeanPostProcessor都有各自不同的用途. 看下 BeanPostProcessor 这个接口,是只有 postProcessBeforeInitialization 和 postProcessAfterInitialization 这二种方法的,并且都是用 default来进行修饰,也就是实现这个接口的时候,可以实现其方法,也可以不用实现其方法的,这就是接口上的方法使用 default 来进行修饰的情况. ApplicationContextAwareProcessor WebApplicationContextServletContextAw ...
SpringBoot的run方法阅读
发表于2021-03-12|更新于2025-12-31|SpringBoot|源码分析•SpringBoot
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 SpringBoot 之 run 方法启动SpringBoot 无配置式启动,大大的减轻了以前需要配置很多xml中的bean/aop/事物等. 只需要使用@SpringBootApplication 和 SpringApplication.run() 方法就可以轻松的跑起来了. 想要看怎么这么神奇,就需要看其run() 方法的执行操作. run() 方法又包含了之前分析的 refresh 方法,但是这里的refresh 方法是要比之前的 单独分析 Spring 的 refresh方法的内容要多得多. run方法整体我们先看下 run 方法整体的流程. 其实也不难看出来, 也是new对象,调用方法. 但是人家可不仅仅是这二种就轻松搞定了的. 而且里面采用了大量的设计模式等知识. 从run 方法整体来看, 先是启动 StopWatch,然后获取出SpringApplicationRunList ...
SpringBoot构造方法阅读
发表于2021-03-02|更新于2025-12-31|SpringBoot|源码分析•SpringBoot
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 SpringBoot构造函数 SpringBoot可以说说目前Java人员都在使用的框架. 但是如果是仅仅停留在使用程度的话,那么还是比较可惜的.可以适当的阅读一下其底层代码是怎么实现的. 就其单Spring框架自身,阅读起来或者说是对其执行代码起来,还是需要大量的时间去理解的. 但是这不妨碍我们可以多阅读几遍,对其加强理解. 构造方法这是简单的启动一个 SpringBoot 项目. 这里先不看run方法,我们就先看这个 new SpringApplication 里面是怎么走的. public static void main(String[] args) { SpringApplication application = new SpringApplication(BootSourceLearnApplication.class); ConfigurableApplic ...
SpringBoot初始化阅读
发表于2021-02-23|更新于2025-12-31|SpringBoot|源码分析•SpringBoot
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 SpringBoot 中 Initializer最近看 SpringBoot 源码,看源码这个这个东西是真的要细心, 当你看到觉得重要的东西的时候,就一定要仔细去看,代码的走向以及走到了那个类中. 只有掌握这些,接下来才会更好理解. 然后我今天在看的时候, org.springframework.boot.SpringApplication#prepareContext —> org.springframework.boot.SpringApplication#applyInitializers 当debug到这里的时候,就会看到 getInitializers() 方法返回的是一个集合,其中都是以Initializers 结尾的,并且都调用了相应的 initialize 方法. 所以就看下这个地方是要做写什么操作. DelegatingApplicationContextInitializer Sha ...
Spring扩展
发表于2021-02-02|更新于2025-12-31|Spring|源码分析•Spring
😀 这里写文章的前言:一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。 可以说说你的故事:阻碍、努力、结果成果,意外与转折。 📝 Spring扩展前面讲到了这么多的什么BeanPostProcessor,事件什么的. 如果不写几下代码这里怕是很难弄清楚是个怎么回事. 所以只有看到代码跑,就大致可以看到其效果还是很明显的. BeanFactoryPostProcessor我们这里实现一下 BeanFactoryPostProcessor 来看一下效果 我们就写一个简单的类, 然后实现下接口 BeanFactoryPostProcessor, 我们这里就获取下 beanFactory中的所有beanDefinitionNames的数组,然后给打印出来看效果. 可以看下下面打印的接口. 然后我们看下源码怎么执行的 @Componentpublic class GavinYangBeanFactoryPostProcessor implements BeanFactoryPostProcessor { public void po ...
1…6789
avatar
ruY9527
Java / 大数据 / 中间件
文章
87
标签
40
分类
24
Follow Me
公告
博客已从 NotionNext 迁移至 GitHub Pages 🎉
最新文章
机器学习_介绍篇章2026-08-08
Antlr4-解析入门一
Antlr4-解析入门一2023-12-21
生活碎碎念_多做少想2023-12-08
摄影笔记
摄影笔记2023-07-18
开源数据平台_技术篇章2023-06-14
分类
  • JVM6
  • Java16
  • Kafka2
  • Linux1
  • ORM框架7
  • Spark1
  • Spring3
  • SpringBoot5
标签
java集合 hive 并发编程 docker 生活碎碎念 思考 数据中台 插件 Java SpringBoot Spring Spark 问题记录 mysql yarn 工具 数据湖 java hadoop 规范 使用入门 开发 JVM Iceberg Linux springBoot 机器学习 spring 框架 Redis Antlr 神经网络 SpringCloud 数据开发 源码分析 大数据 RocketMQ hdfs kafka SonarQube
归档
  • 八月 20261
  • 十二月 20232
  • 七月 20231
  • 六月 20231
  • 五月 20231
  • 十二月 20222
  • 八月 20221
  • 七月 20223
网站资讯
文章数目 :
87
已运行时间 :
本站总字数 :
228.1k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By ruY9527
框架 Hexo|主题 Butterfly
搜索
数据库加载中