摘要:
一、需求分析 1、Mybatis是什么? 一个半自动化的orm框架(Object Relation Mapping)。 2、Mybatis完成什么工作? 在面向对象编程中,我们操作的都是对象,Mybatis框架是一个数据访问层的框架,帮我们完成对象在数据库中的存、取工作。 为什么称为半自动化? 关系 阅读全文
摘要:
一、Spring事务管理的特点 Spring框架为事务管理提供一套统一的抽象,带来的好处有:1. 跨不同事务API的统一的编程模型,无论你使用的是jdbc、jta、jpa、hibernate。2. 支持声明式事务3. 简单的事务管理API4. 能与Spring的数据访问抽象层完美集成 说明:Spri 阅读全文
摘要:
一、AOP的核心概念回顾 https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/core.html#aop 我们先来看一下下面的这张图 说明: 程序运行时会调用很多方法,调用的很多方法就叫做Join p 阅读全文
摘要:
一、依赖注入DI 学习目标1)搞清楚构造参数依赖注入的过程及类2)搞清楚注解方式的属性依赖注入在哪里完成的。学习思路1)思考我们手写时是如何做的2)读 spring 源码对比看它的实现3)Spring 源码解读 1. 构造参数依赖注入 org.springframework.beans.factor 阅读全文
摘要:
目录:一、搞清楚ApplicationContext实例化Bean的过程二、搞清楚这个过程中涉及的核心类三、搞清楚IOC容器提供的扩展点有哪些,学会扩展四、学会IOC容器这里使用的设计模式五、搞清楚不同创建方式的bean的创建过程 一、ApplicationContext实例化bean的过程 1. 阅读全文
摘要:
一、BeanDefinition 1. bean定义都定义了什么? 2、BeanDefinition的继承体系 父类: AttributeAccessor: 可以在xml的bean定义里面加上DTD文件里面没有的属性,如 BeanMetadataElement : 定义bean定义来源于哪里,在Be 阅读全文
摘要:
Spring 源码学习过程: 一、搞明白IOC能做什么,是怎么做的 1. 搞明白IOC能做什么? IOC是用为用户创建、管理实例对象的。用户需要实例对象时只需要向IOC容器获取就行了,不用自己去创建,从而达到与具体类解耦。 2. IOC是怎么做到的,即它的实现步骤是怎么样的? 2.1 用户配置bea 阅读全文
摘要:
一. 学习源码的目的 1. 为了扩展和调优:掌握框架的工作流程和原理 2. 为了提升自己的编程技能:学习他人的设计思想、编程技巧 二. 学习源码的方法 方法一: 1)掌握研究的对象和研究对象的核心概念:搞明白框架都能做什么,是怎么做的。 比如我们要研究Spring的源码,那么研究的对象就是Sprin 阅读全文
摘要:
一、为什么要提供配置的方法 经过前面的手写Spring IOC、手写Spring DI、手写Spring AOP,我们知道要创建一个bean对象,需要用户先定义好bean,然后注册到bean工厂才能创建一个bean对象。代码如下: 那么如果我们上面的过程换成配置的方式会是什么样的呢? 经过上面的创建 阅读全文
摘要:
一、AOP分析 问题1:AOP是什么? Aspect Oriented Programming 面向切面编程,在不改变类的代码的情况下,对类方法进行功能增强。 问题2:我们需要做什么? 在我们的框架中要向使用用户提供AOP功能,让他们可以通过AOP技术实现对类方法进行功能增强。 从"Aspect O 阅读全文
摘要:
一、IOC分析 1. IOC是什么? IOC:Inversion of Control控制反转,也称依赖倒置(反转) 问题:如何理解控制反转? 反转:依赖对象的获得被反转了。由自己创建,反转为从IOC容器中获取(和自动注入) 2. IOC容器带来什么好处? 1)代码更简洁,不需要去new需要使用的对 阅读全文