- 博客(21)
- 资源 (5)
- 收藏
- 关注

原创 图解spring-mybatis
一、SSA之前的文章也有写过mybatis拓展spring的分析。我们可以知道mybatis在拓展spring的时候用了spring的两个拓展接口mybatis实现spring的FactoryBean接口,这个接口有个getObject方法,重写此方法方便给Dao接口做代理。做代理的原因很简单Dao接口无法直接查询数据库,mybatis的通用代理对象的目的就是在代理对象内部配置好数据源,传入你的mapperInterface即mapper接口到代理对象,即可查数据库。mybatis实现spring的
2021-07-14 23:25:55
134

原创 关于bean的populateBean中获取ApplicationContext的源码过程
文章目录前言一、SSA二、GTTP1.看下基本类,模拟的mybatis扩展spring接口实现查询2.查看mybatis扩展spring源码总结前言“风吹起如花般破碎的流年,而你的笑容摇晃摇晃,成为我命途中最美的点缀,看天,看雪,看季节深深的暗影。”- - 张爱玲一、SSA我们都知道spring-framework的框架默认对bean的管理都是单例的,如果一个单例的类A里需要调用一个原型对象B,如果在A中@Autowired注入了B这个原型对象,那么从A中每次get到的B都是同一个(下面会
2021-07-12 23:49:12
160
原创 aqs笔记
AQS的整体详细流程图总体的详细脉络上图写的已经非常详细,此处额外补充一些基础知识cas操作究竟是什么意思jdk源代码里经常看到如设置尾compareAndSetTail(Node expect, Node update) #unsafe.compareAndSwapObject(this, headOffset, null, update)设置头compareAndSetHead(Node update) #unsafe.compareAndSwapObject(thi
2022-04-17 23:21:10
474
原创 java锁头变化本质
概念1. java对象对象头(Object header)12byte。对象头由Mark word(8byte)和Klass pointer(开启指针压缩大小为4byte,指向对象的元数据的指针,指向方法区class类的模板)组成。对齐的字节(由对象的实例数据和字节对齐组成。因为在64位虚拟机上对象的大小必须是8的倍数)4byte。Object header(128 bits)Mark word(64 bits)Klass pointer(64 bits 未开启
2021-12-26 01:37:43
440
原创 springsecurity+jwt+oauth2.0校验jwt的过期时间源码解读
场景描述笔者的项目架构采用的是springsecurity+jwt+oauth2.0架构,配置的多客户端校验权限获取jwt访问系统资源。也就是说系统存在web,小程序,手机号三个用户体系,对应三个用户主表。每个客户端在BaseClientDetails的access_token_validity和refresh_token_validity配置jwt的access_token和refresh_token的过期时间。如下图:读取数据库配置的客户端各字段属性,在上面的方法的中配置如下图在配置类中
2021-11-17 17:18:28
3068
原创 mysql的sql优化案例
mysql分页查询优化此处mysql表已经设置了主键索引 PRIMARY KEY (id),联合索引 KEY idx_name_age_position (name,age,position) USING BTREEmysql> EXPLAIN select * from employees limit 90000,5;这条sql语句会查询约10w条数据,只拿出需要的5条其他全部丢弃,没走索引,效率很低。mysql> EXPLAIN select * from employ
2021-07-30 19:08:37
404
原创 mysql性能优化
一、SSA本系列主要是写各种优化。二、GTTP索引能提高查询的速度MySQL的InnoDB存储引擎用的是索引是用户所设置的所在列的值,查询的结果value是索引值所在行的数据对应的磁盘地址(指针),即可以读到这行数据。...
2021-07-28 16:31:21
437
原创 mybatis扩展---Second
文章目录前言一、SSA二、GTTP1.逐个看下基本类2.模拟上面的mybatis#getMapper获取代理对象3.查看mybatis源码,证明模拟的理论总结前言劳歌一曲解行舟,红叶青山水急流。日暮酒醒人已远,满天风雨下西楼。- - - 出自许浑 的《谢亭送别》(唱完了一曲送别的歌儿,你便解开了那远别的行舟,两岸是青山,满山是红叶,水呀,在急急地东流。当暮色降临,我醒来了,才知道人已远去,而这时候,满天风雨,只有我一个人的身影独自离开了那西楼。)一、SSA关于mybatis实现jdk
2021-06-18 14:03:31
304
原创 mybatis扩展---Firstly
文章目录前言一、SSA二、GTTP1.静态代理2.JDK动态代理3.自定义JDK动态代理总结前言万丈高楼平地起,-- 基础篇。一、SSA之前写过这个知识点 ,现在补充一些。Talk is Cheap,。二、GTTP1.静态代理先看下笔者的代码。代码的大概意思就是: 钢铁侠代理了蜘蛛侠,两人一起打怪兽。当然,这个是静态代理,是在有接口的前提下。其中的问题显而易见,SpiderMan不能每次都要叫唐尼代理他,他必须自己能搞定,所以他后面继承高科技的衣钵,个人感觉是唐尼的片酬太
2021-06-16 15:24:30
110
原创 动态代理(代码篇)
文章目录前言一、SSA二、GTTP1.静态代理函数式接口定义:3.LocalDateTime API总结前言万丈高楼平地起,-- 基础篇。一、SSA之前写过这个知识点 ,现在补充一些。Talk is Cheap,。二、GTTP1.静态代理函数式接口定义:先看下笔者的代码。代码的大概意思就是: 钢铁侠代理了蜘蛛侠,两人一起打怪兽。当然,这个是静态代理,是在有接口的前提下。其中的问题显而易见,SpiderMan不能每次都要叫唐尼代理他,他必须自己能搞定,所以他后面继承高科
2021-05-28 15:36:58
347
原创 自定义注解(基础篇)
文章目录前言一、Say Something --- Author (SSA)二、理论(Get To The Point言归正传)1.概念2.性能3.延申反射概念缺点总结前言万丈高楼平地起,基础知识。一、Say Something — Author (SSA)果静林09年版《袁隆平》我居然看完了(虽然存在快进的环节),前几天关于袁老的新闻报道就不多说了,福泽子孙后代的功绩值得每个人学习致敬。话说回来相关新闻显示袁老求学期间成绩一般,但后面持久专心的研究才取得了伟大的成就。例如马老师人到中年还一
2021-05-26 22:53:18
94
原创 spring循环依赖的理解
关于spring的循环依赖的认识前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入提示:文章写完后,目录可以自动生成,如何生成可
2021-01-07 23:54:51
219
原创 日常杂项
Oracle按天(自定义)分组,查询每天前100条SELECT *FROM (SELECT T.*, RANK() OVER(PARTITION BY to_char(t.create_date_日期字段,‘yyyy-mm-dd’) ORDER BY T.ROWID) RKFROM SYS_USER_表名 Twhere t.create_date_日期字段 betweenTO_DATE(‘2020-11-01’, ‘yyyy-mm-dd’) ANDTO_DATE(‘2020-12..
2020-12-08 10:35:03
117
原创 Oracle中索引的原理
索引的概念索引是一种数据库结构,能够就数据库中的某列提供快速查询,而不用检索整个表格(官方的不行)。在 Oracle 数据库中,存储的每一行数据都有一个 rowID 来标识。当 Oracle 中存储着大量的数据时,意味着有大量的 rowID 。当对 Oracle 表执行指定条件的查询时,常规的方法是将所有的记录取出来,然后再把每一条记录与查询条件作对比,最后返回满足条件的记录。这样操作不仅耗费时间并耗费资源。此时想要快速定位指定的 rowID ,就需要使用索引对象。建立索引时,oracle会首先
2020-12-07 16:16:30
3985
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人