
设计模式
文章平均质量分 92
王老狮
现500强企业担任核心技术骨干,有多年的技术开发和管理经验。曾在公司主导过开放平台系统架构的设计,大数据平台架构设计。现主要负责公司数据中台体系的从0到1的建设,擅长分布式,高并发,大数据等技术领域。在系统安全、微服务、技术架构等领域输出多篇技术专利。对新技术有着极高的热情,喜欢钻研和研究未知的领域,善于分享,输出技术文章全网阅读200W左右。善于目标驱动,抛弃过往的经验,回到问题的本质。
展开
-
阿里内部资料,10W字总结JAVA面试题-设计模式篇
1、说说什么是单例模式答:单例模式是一种常用的软件设计模式,在应用这个模式时,单例对象的类必须保证只有一个实 例存在,整个系统只能使用一个对象实例。优点:不会频繁地创建和销毁对象,浪费系统资源。可能这会需要你手写一个单例模式,这就得自己去学了,因为单例模式有很多种写法,懒汉模式, 饿汉模式,双重检查模式等。懒汉模式就是用的时候再去创建对象,饿汉模式就是提前就已经加载 好的静态static对象,双重检查模式就是两次检查避免多线程造成创建了多个对象。单例模式有很多种的写法,我总结一下:饿汉式原创 2021-11-21 17:42:59 · 664 阅读 · 8 评论 -
Myabtis源码分析终篇-Mybatis是如何访问数据的?
一、 核心组件Executor分析1、Executor介绍在上一篇文章中我们了解到,提到 Sqlsession 的功能都是基于 Executor 来实现的,Executor 是MyBaits 核心接口之一,定义了数据库操作最基本的方法,在其内部遵循 JDBC 规范完成对数据库的访问;Executor 类继承机构如下图所示:Executor: MyBaits核心接口之一,定义了数据库操作最基本的方法; CacheingExecutor:使用装饰器模式,对真正提供数据库查询的E...原创 2021-10-24 11:11:21 · 2878 阅读 · 14 评论 -
Myabtis源码分析五-Mybatis配置加载完全图解,建造者模式的使用
一、Mybatis运行流程概述为了熟悉Mybatis的运行流程,我们先看一段代码public class MybatisDemo { private SqlSessionFactory sqlSessionFactory; @Before public void init() throws IOException { //--------------------第一步:加载配置--------------------------- // 1.读取mybatis配置文件原创 2021-10-19 08:30:00 · 428 阅读 · 21 评论 -
Myabtis源码分析四-缓存模块分析 ,装饰模式的使用
缓存模块分析4.1 需求分析MyBatis 缓存模块需满足如下需求: 1. MyBatis 缓存的实现是基于 Map 的,从缓存里面读写数据是缓存模块的核心基础功能;2. 除核心功能之外,有很多额外的附加功能,如:防止缓存击穿,添加缓存清空策略(fifo、 lru)、序列化功能、日志能力、定时清空能力等; 3. 附加功能可以以任意的组合附加到核心基础功能之上; 基于 Map 核心缓存能力,将阻塞、清空策略、序列化、日志等等能力以任意组合的方式优 雅的增强是 Mybatis 缓存模块实现最大的难题...原创 2021-10-17 10:40:19 · 947 阅读 · 21 评论 -
Mybatis源码分析三-数据源模块分析,工厂模式的使用
数据源是指数据库应用程序所使用的数据库或者数据库服务器,一般我们程序中可能会用到一个或者多个数据源,那么mybatis是怎么创建和维护这些数据源的呢?我们今天数据源模块重点讲下数据源的创建和数据库连接池的实现;一、数据源的创建数据源对象是比较复杂的对象,其创建过程相对比较复杂,对于 MyBatis 创建一个数据源, 具体来讲有如下难点:常见的数据源组件都实现了 javax.sql.DataSource 接口; MyBatis 不但要能集成第三方的数据源组件,自身也提供了数据源的实现; 一般.原创 2021-10-11 08:30:00 · 881 阅读 · 14 评论