Spring中的可扩展点(二)自定义属性编辑器 目录1.自定义属性编辑器具体步骤2.DEMO例程2.1 创建Address类2.2 创建Customer类,依赖于Address2.3 创建自定义Editor2.4 创建自定义Registrar2.5 创建customizeEditor.xml配置文件2.6 Application2.7 结果演示3.Spring是如何做到可扩展的1.自定义属性编辑器具体步骤自定义一个实现了PropertyEditorSupport接口的编辑器,重写setAsText方法。
Spring中的可扩展点(一)自定义标签 目录1.自定义标签具体步骤2.DEMO例程2.1 创建User类2.2 创建自定义解析器UserBeanDefinitionParser2.3 创建自定义处理器UserNameSpaceHandler2.4 创建自定义XSD2.5 创建Spring.handlers 和 Spring.schemas2.6 测试类 Application2.7 运行结果及目录结构:3.我们创建的几个文件是如何关联到一起的4.Spring是如何做到可扩展的1.自定义标签具体步骤
Spring 循环依赖(5.2.x) 1.回顾getBean过程Spring getBean过程如上时序图所示,AbstractBeanFactory第一次调用getSingleton方法入参为beanName:如果未查询到Bean信息那么就会二次调用getSingleton方法,入参为beanName和ObjectFactory:这里用了一个lambda表达式,这次会尝试创建Bean,内部会回调到上图红框里createBean方法开始创建Bean。2.回顾创建拥有简单依赖...
Spring Bean 生命周期 目录1.元信息配置阶段2.元信息解析阶段(封装BeanDefinition)3.Bean注册阶段4.实例化阶段5.属性赋值阶段6.初始化阶段6.1 Aware接口回调阶段6.2 实例化前置增强阶段6.3 初始化6.4 实例化后置增强阶段7.销毁阶段7.1 销毁前阶段7.2 销毁中阶段1.元信息配置阶段Spring 最早支持在 xml 中配置 Bean 的元信息,这些 bean 元信息的配置都处于资源文件中,由于需要大量手工配...
Spring创建BeanDefinition全流程解析(5.2.x) 1.Spring源码怎么学注:这里笔者只是分享一下自己的心得,可能并不适合所有人,如果您觉得有道理不妨一试。 刚看Spring源码优先理清楚整体逻辑,切记刚入手就开始扣代码细节,容易越陷越深导致学迷。建议先理清楚refresh()中的主要方法,再详细深入每一个方法。Spring在设计上大量运用了设计模式(观察者模式、适配器模代理模式),如果碰到看起来很奇怪的名词,先往设计模式上想,找到对应设计模式后先弄懂该设计模式,然后再去看源...
Spring IOC 1.Spring IOC容器和Bean简介在 Spring 中,构成应用程序主干并由 Spring IOC 容器管理的对象称为 bean。bean 是由 Spring IoC 容器实例化、组装和管理的对象。bean 只是应用程序中的众多对象之一。Bean 以及它们之间的依赖关系反映在容器使用的配置元数据中。IOC也称为依赖注入 (DI),对象仅通过构造函数参数、工厂方法的参数或在对象实例被构造或从工厂方法返回后设置的属性来定义它们的依赖关系, 然后容器在创建 ...
MySQL主从复制 1.主从复制作用1.1 读写分离,提高吞吐量可以通过配置读写分离,提高数据库并发处理能力。其中一个是Master主库,负责写入数据,我们称之为:主库其他都是Slave从库,负责读取数据,我们称之为:读库当主库进行更新的时候,会自动将数据复制到从库中,而我们在客户端读取数据的时候,会从从库中进行读取。面对读多写少的需求,采用读写分离的方式,可以实现更高的并发量。而且读写分离还可以减少锁表带来的影响,比如我们让主库负责写,当主库出现写锁的时...
MySQL知识点思维导图 MySQL知识点思维导图,文章里是PNG格式,可能不是很清晰,文末附上PDF和xmind工程文件链接,需要的小伙伴自取,都只需要1个币(设置成0个币还需要啥下载码)。如有错误的地方欢迎大家批评指正。MySQL知识点思维导图PDFMySQL知识点思维导图PDF-MySQL文档类资源-CSDN下载MySQL知识点思维导图PDF更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/qq_36756682/85022433My...
MySQL其他数据库日志 之前写数据库事务的时候,写过两种日志:重做日志(redo log)、回滚日志(undo log)对于线上数据库系统,如果发生突然宕机,那么定位到宕机的原因就很关键。我们可以查看数据库的错误日志,因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信息。1.MySQL支持的日志MySQL有不同类型的日志文件,用来存储不同类型的日志,分为二进制日志、错误日志、通用查询日志和慢查询日志,这是常用的4种日志。MySQL8.0又新增了两种支持的日志:中继日志和数...
MySQL MVCC 目录1.什么是多版本并发控制2.快照读与当前读2.1 快照读2.2 当前读3.复习3.1 复习隔离级别3.2 隐藏字段、undo log版本链4.MVCC实现原理之ReadView4.1 什么是ReadView4.2 设计思路4.3ReadView规则4.4 MVCC整体执行流程1.什么是多版本并发控制MVCC(Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC是通过数据行的多个...
MySQL中的锁 目录1.概述2.MySQL并发事务访问相同记录2.1 并发读2.2 并发写2.3 并发读写2.4 并发问题解决方案3.锁的不同角度分类3.1 从数据操作类型划分:共享锁(S锁)、排他锁(X锁)3.2 从数据操作粒度划分:表级锁、行级锁、页级锁3.2.1 表级锁3.2.2 InnoDB行锁3.2.3页锁3.3从对待锁的态度划分:悲观锁、乐观锁3.4从加锁的方式划分:隐式锁、显示锁3.5其他:全局锁、死锁1.概述锁是...
MySQL事务日志 1.事务的四种特性是基于什么机制实现的事务的隔离性是由锁机制实现的事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。REDO LOG:重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。UNDO LOG:回滚日志,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。REDO LOG和UNDO LOG都可以视为是一种恢复操作,但是:REDO LOG:记录的是物理级别上的页修改操作,比如页号,偏...
MySQL InnoDB数据存储结构 目录1.数据库的存储结构1.1 磁盘与内存交互基本单位:页1.2 页结构概述1.3 页的大小1.4 页的上层结构2.页的内部结构3.行格式4.表空间4.1 独立表空间4.2 系统表空间1.数据库的存储结构1.1 磁盘与内存交互基本单位:页MySQL索引信息以及数据记录都是保存在文件上的,确切的说是存储在页的结构中。InnoDB将数据划分为若干个页,默认页的大小为16KB。以页作为磁盘和内存交互的基本单位,也就是说在...
MySQL事务基础知识 目录1.数据库事务概述1.1 存储引擎支持情况1.2 事务基本概念1.3 事务的ACID特性1.4 事务的状态2.如何使用事务3.事务的隔离级别4.事务的常见分类1.数据库事务概述1.1 存储引擎支持情况可以使用 SHOW ENGINES 命令查看MySQL支持事务的存储引擎有哪些1.2 事务基本概念事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态事务处理的原则:保证所有事物都作为一个工作单元来执行,即使出现了故障,...
Java多线程上机面试题 目录1.两个线程交替打印1-1002.三个线程交替打印1-1001.两个线程交替打印1-100package com.example.practice.Thread;/** * @author liuxiaobai */public class WindowSaleTicket { public static void main(String[] args) { Window window = new Window(); new Thr