自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鸵鸟番茄酱

打工人的天堂,BUG界的泰斗

  • 博客(12)
  • 收藏
  • 关注

原创 Mybatis基础-执行流程解析

目录前言Session的获取Mapper的获取接口调用的核心逻辑插件的实现全文总结 前言 在上篇文章中,向大家介绍了Mybatis配置文件的解析过程,分析了框架内部是怎么一步步将文件映射为java对象的,本章我们讲解在调用一个接口时框架内部是如何拿到我们的具体sql,又是如何将结果封装为我们需要的类型,最终展现在我们面前的。 Session的获取 从上篇文章我们知道,解析完成后会生成一个SqlSessionFactory对象,而我们所有的CRUD都需要通过Session会话来进行操作,因此我们需要通过该工厂

2021-04-28 17:59:42 135 1

原创 MyBatis基础-配置文件解析

MyBatis基础-配置文件解析前言Mybatis的配置文件以及相关介绍俯瞰整个流程设计mybatis.xml核心配置文件解析总结: 前言 MyBatis是常见的Java数据库访问层框架,它的前身是 Apache 的开源项目 iBatis。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装,是一个支持普通 SQL 查询,存储过程和高级映射的基于 Java 的优秀持久层框架。在日常工作中,开发人员多数情况下是对底层的原理一知半解。因此带着个人的兴趣,希望从应用及源码的角度为

2021-04-28 16:58:46 112

原创 ReetrantLock锁源码解析

(非)公平锁加锁主要方法解析: protected final boolean tryAcquire(int acquires) { //获取当前线程 final Thread current = Thread.currentThread(); //查看AQS的status状态值 int c = getState(); //等于0表示还没有线程占有锁 if (c == 0) { //判断是否有队...

2019-08-11 16:35:08 215

原创 java8-HashMap-putVal()源码详解

/** * Implements Map.put and related methods. * * @param hash key的hash值 * @param key the key * @param value the value to put * @param onlyIfAbsent 如果为 true, 不改变存在的value * @para...

2019-07-09 21:03:14 564 1

原创 java8-HashMap-resize()详细原理

List item //数组扩容 final HashMap.Node<K,V>[] resize() { //临时数组 HashMap.Node<K,V>[] oldTab = table; //现在的hash表容量,第一次初始化时为0 int oldCap = (oldTab == null) ? 0 : oldTab.length; //现在的扩容临界值 int o...

2019-07-09 09:36:08 1695

原创 数据库连接时间-详解

1.ConnectTimeout 是指建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间。(例如:mysql客户端在尝试与mysql服务器建立连接) 2.ReadTimeout 是指建立连接后从服务器读取到可用资源所用的时间 3.socketTimeout 防止因网络问题或数据库问题,导致driver一直阻塞等待,从而产生问题 ...

2019-05-22 10:46:32 2173

原创 Mysql时区修改

Mysql时区修改 修改mysql时区 临时修改,重启后失效 查看时区信息 ,SHOW VARIABLES LIKE “%time_zone%”; 修改时区信息,SET GLOBAL time_zone = ‘+08:00’;

2019-05-07 15:39:48 1045

原创 Spring---源码分析---AnnotationConfigApplicationContext

一、基础熟悉 1.Spring中初始化注解Bean定义的类有两个: * AnnotationConfigApplicationContext 注解配置应用上下文 * AnnotationConfigWebApplicationContex AnnotationConfigWebApplicationContext是AnnotationConfigApplicationContext的web...

2019-01-14 17:02:42 735

原创 Spring成神之路---aop---2

1.aop实例化模型 我们在使用切面时,当目标对象是多例时,默认生成的切面对象是单例的,为了符合业务场景,因此在某些情况下切面的创建也必须是多例的,可通过上述方式对切面类进行设置。 2.aop实现原理 1)手写jdk动态代理(山寨版) 为了更好的理解jdk动态代理的底层实现,因此自己手写了一个jdk的实现过程,主要原理一样,可以仔细研究一下哈。 public class ProxyUtilTwo...

2019-01-13 10:29:05 188

原创 Spring成神之路---aop---1

1.什么是aop? OOP对比,面向切面,传统的OOP开发中的代码逻辑是至上而下的,在这些至上而下的过程中 会产生一些横切性的问题,这些横切性的问题和我们的主业务逻辑关系不大,会散落在代码的各个 地方,造成难以维护,AOP的编程思想就是把业务逻辑和横切的问题进行分离,从而达到解耦的目 的,提高代码的重用性和开发效率 2.aop的应用场景 1.日志记录 2.权限验证 3.效率检查 4.事...

2019-01-08 21:03:29 349

原创 Spring成神之路---基础2

1.Spring生命周期的回调 1)类初始化时执行,即创建完实例对象后自动执行的方法,该方法的调用是在执行完构造方法后执行的,实现方 式有三种: (1)实现InitalizingBean接口,重写afterPropertiesSet()方法 (2)在xml文件中配置,在bean标签中添加init-method="方法名"属性; (3)在需要标记的方法上添加@PostConstruct注解。 对应的...

2019-01-08 00:33:47 111

原创 spring成神之路-基础(小白也能看懂)

#基础 ##1.什么是IOC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式包含: 1)依赖注入(Dependency Injection,简称DI), 2)依赖查找(Dependency Lookup, 3)依赖拖拽(Dependency Pull) ###1.1什么是依赖注入? 应用组件不...

2018-12-25 14:35:17 197

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除