- 博客(9)
- 收藏
- 关注
原创 Spring源码系列三--ConfigurationClassPostProcessor
上文我们讲解了refresh方法中的invokeBeanFactoryPostProcessors方法,但是对于其中的BeanDefinitionRegistryProcessor的实现类的方法还没有提及,本文将着重讲解Spring framework中对于该接口唯一的也是最为重要的实现类ConfigurationClassPostProcessor的processConfigBeanDefinitions方法。ConfigurationClassPostProcessor@Override publ
2020-06-11 20:46:30 175
原创 Spring源码系列三--invokeBeanFactoryPostProcessors
本文主要讲解AnnotationConfigApplicationContext中的refresh方法,主要讲解invokeBeanFactoryPostProcessors方法,因为这个方法才是Spring bean生命周期的开始@Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepar
2020-06-10 16:56:59 244
原创 Spring源码系列二--Spring环境初始化
这里说的Spring环境初始化仅仅是指Spring framework的环境,而不是SpringMvc和Spring Boot,因为Spring framework实现了ioc和aop,这也是整个Spring家族的基石,Spring容器说的是广义上的容器,而不是指Spring中的单例池,Spring的单例池其实很简单,最终是通过ConcurrentHashMap来实现。但是其实Spring容器远远比这要复杂,还包括了BeanDefinition的容器,配置文件的容器,等等一系列我们的项目中所用到的数据。S
2020-06-09 20:19:35 468
原创 spring源码系列一--BeanDefinition
BeanDefinition是整个Spring实现IOC的核心,也是整个Spring框架的核心,我们在阅读源码之前必须要先搞懂BeanDefinition的含义,以及相应的成员变量,BeanDefinition是一个接口,在Spring中有很多实现类,不同的实现类都有不同的功能。本文会列举我们在阅读源码过程中会遇到的BeanDefinition的实现类以及相应的成员变量的含义。BeanDefinitionBeanDefiniton与对象的关系BeanDefinition的重要属性与BeanDefiniti
2020-06-04 12:56:11 581
原创 mybatis源码系列-查询操作的实现
在mybatis环境中我们定义的是接口,但是最终可以通过getMapper(classType)方法获取到该接口的实现类,然后调用数据库的查询方法,很显然是mybatis帮我们做了jdk的动态代理,本文的环境仍然与上一篇博客一致。很显然是jdk的动态代理,下面我们就来看看mybatis如何实现代理的过程,首先调用getMapper方法,这是个空壳方法,传入的参数type就是我们需要代理的接口的class类型,this是提哦那个锅SqlSessionFactory的openSession方法获取的SqlS
2020-06-01 19:46:19 283
原创 mybatis源码系列-配置文件解析
mybatis启动流程之xml解析测试环境搭建数据库建表java实体类mybatis-config配置文件mapper接口与mapper映射文件mybatis-config文件解析通过package来注册别名通过typeAlias来注册别名mapper映射文件解析通过package来配置映射文件通过mapper resource来解析mapper测试环境搭建数据库建表CREATE DATABASE IF NOT EXISTS db_mybatis CHARACTER SET utf8;-- 创建数据
2020-05-30 12:45:53 221
原创 ORM框架回顾-myabtis3
mybatis的缓存与注解开发mybatis的缓存机制mybatis的懒加载机制mybatis的注解开发mybatis的注解开发-crud操作mybatis的注解开发-一对一关联查询mybatis的注解开发-一对多关联查询mybatis的一级缓存一级缓存失效的几点原因mybatis的二级缓存mybatis的懒加载机制mybatis的注解开发注解开发的查询操作注解开发的更新操作注解开发的保存操作注解开发的删除操作注解开发的多表查询-一对一注解开发的多表查询-一对多mybatis的缓存机制mybatis的懒
2020-05-26 22:17:47 115
原创 ORM框架回顾-mybatis 二
mybatis的多表关联查询1.一对一1.1 数据库建表1.2 实体类与映射文件1.3测试及相关说明2.一对多2.1 数据库建表2.2 实体类与映射文件2.3测试及相关说明3.多对多3.1 数据库建表3.2 实体类与映射文件3.3测试及相关说明一对一查询1.1数据库建表1.2 编写实体类与映射文件一对多查询2.1数据库建表如1.1中所示2.2实体类与映射文件多对多3.1数据库建表3.2实体类与映射文件1.一对一1.1 数据库建表1.2 实体类与映射文件1.3测试及相关说明2.一对多2.1 数据库
2020-05-24 23:10:31 407
原创 ORM框架-mybatis回顾一
@[TOC]1.mybatis的入门demo2.相关配置文件解释3.crud操作1.mybatis的入门demo1.1 首先先创建数据库:CREATE DATABASE IF NOT EXISTS db_mybatis CHARACTER SET utf8;-- 创建数据表DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(
2020-05-20 13:23:30 148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人