自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

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