上一篇我们对SqlSession和SqlSessionFactory的创建过程有了一个详细的了解,但上述的创建过程只是为SQL执行和SQL映射做了基础的铺垫而已,就和我们Spring源码为Bean容器的加载进行许多初始化的工作相同,那么做好前期的准备工作接下来该做什么了?该做数据库连接驱动管理和SQL解析工作了!那么本篇本章就来讨论一下数据库驱动连接管理和SQL解析的管理组件之 Executor执行器。
深入解析java反射
本博文主要记录Java 反射(reflect)的使用,在了解反射之前,你应该先了解 Java 中的 Class 类,如果你不是很了解,可以先简单了解下。
java关键字名单
java有一系列的关键字,在代码中各自有自己的重要用途与意义,今天小编想带着大家一起来了解一下java的关键字!
聊聊 Redis 的事务
背景
提到事务想必大家一定不会陌生,工作面试中多多少少都会了解到,这篇文章主要带大家再简单回忆一下事务的基本知识,然后重点介绍下 Redis 的事务,关于 Redis 的事务有何不同我们继续往下看就知道了。
我竟然不再抗拒 Java 的类加载机制了
很长一段时间里,我对 Java 的类加载机制都非常的抗拒,因为我觉得太难理解了。但为了成为一名优秀的 Java 工程师,我决定硬着头皮研究一下。
Apache Hadoop YARN 的架构与运行流程
Apache Hadoop YARN 的架构与运行流程。
后端JAVAWeb工程师必须掌握的三个内容!!
我们都是作为一个JAVA开发,之前有好几次出去面试,面试官都问我,JAVAWeb掌握的怎么样,我当时就不知道怎么回答,Web,日常开发中用的是什么?今天我们来说说JAVAWeb最应该掌握的三个内容。
Spring 源码学习(七)扩展功能 下篇
在上一篇文章中,深入分析和学习了 BeanFactoryPostProcessor
,主体是 BeanFactory
的后处理器,这次来学习主体是 Bean
的后处理器:BeanPostProcessor
。
定义:它也是 Spring
对外提供的接口,用来给用户扩展自定义的功能。执行的时机在 bean
实例化阶段前后
本篇思路:
BeanPostProcessor
定义- 如何使用
- 代码实现分析
- 介绍剩余的扩展功能
【吐槽篇】关于工作半年的一点感悟
MyBatis 核心配置综述 之项目概述
MyBatis 是什么?
MyBatis是第一个支持自定义SQL、存储过程和高级映射的类持久框架。MyBatis消除了大部分JDBC的样板代码、手动设置参数以及检索结果。MyBatis能够支持简单的XML和注解配置规则。使Map接口和POJO类映射到数据库字段和记录。
下面我们通过一个简单的项目搭建来带你认识一下MyBatis的使用和一些核心组件的讲解。
聊聊面试中的过滤器与拦截器
背景
做过 JavaWeb 开发的对过滤器和拦截器肯定不会陌生,而且也会熟练的使用,但是关于过滤器和拦截器具体的区别和差异可能不是特别的了解,这篇文章就跟大家介绍下过滤器和拦截器的区别。
Spring 源码学习(六)扩展功能 上篇
结束了前面的基础结构分析,了解到 Spring
是如何识别配置文件和进行解析属性,最终将 bean
加载到内存中。同时为了更好得理解 Spring
的扩展功能,我们先来巩固一下 beanFactory
和 bean
的概念,然后再分析新内容后处理器 PostProcessor
。
本篇阅读思路:
- 是什么
- 如何使用
- Spring 实现逻辑
一套价值 66 元的干货课程,送给知识星球用户!
Spring 源码学习(五) 循环依赖
还记得上一篇笔记,在 bean
加载流程,在创建过程中,出现了依赖循环的监测,如果出现了这个循环依赖,而没有解决的话,代码中将会报错,然后 Spring
容器初始化失败。
由于感觉循环依赖是个比较独立的知识点,所以我将它的分析单独写一篇笔记,来看下什么是循环依赖和如何解决它。
你竟然没用 Maven 构建项目?
一年前,当我和小伙伴小龙一起做一个外包项目的时候,受到了严重的鄙视。我那时候还不知道 Maven,所以搭建项目用的还是最原始的方式,小龙不得已在导入项目的时候花了很长时间去下载项目依赖的开源类库。
出于对我的尊重,小龙没有破口大骂,而是非常委婉地说了一句:“二哥,你好歹也有一定的知名度了,竟然没用 Maven 构建项目,真让我大开眼界啊。”
作为一名富有上进心的程序员,不能忍啊。借此机会,有必要隆重地向大家介绍一下 Maven 了。
面试中的Spring,我们该怎么去回答
之前的有作者JingQ发布了一些自己学习Spring源码的一些心得和教程,我今天只谈一下我们在面试中的如果面试官问到Spring,你应该怎么去回答,来获取面试官的青睐。在我的印象中,Spring框架可以说是Java世界里面最为成功的框架了,在企业的实际的应用里面,大部分的企业架构都是基于Spring框架的,它的成功来自于他的理念而不是技术,最为核心的理念是IOC和AOP。接下来我们就来讲讲这个Spring吧!
Java实现一致性哈希算法,并搭建环境测试其负载均衡特性。
实现负载均衡是后端领域一个重要的话题,一致性哈希算法是实现服务器负载均衡的方法之一,你很可能已在一些远程服务框架中使用过它。下面我们尝试一下自己实现一致性哈希算法。
Spring 源码学习(四) bean 的加载
既然我们 Spring
辛辛苦苦将 bean
进行了注册,当然需要拿出来进行使用,在使用之前还需要经过一个步骤,就是 bean
的加载。
在第一篇笔记提到了,完成 bean
注册到 beanDefinitionMap
注册表后,还调用了很多后处理器的方法,其中有一个方法 finishBeanFactoryInitialization()
,注释上面写着 Instantiate all remaining (non-lazy-init) singletons
,意味着非延迟加载的类,将在这一步实例化,完成类的加载。
而我们使用到 context.getBean("beanName")
方法,如果对应的 bean
是非延迟加载的,那么直接就能拿出来进行使用,而延迟加载的 bean
就需要上面的步骤进行类的加载,加载完之后才能进行使用~
下面一起来看下这两个步骤中, bean
是如何进行加载的。
java的可变参数
Java方法中的可变参数类型是一个非常重要的概念,有着非常广泛的应用,今天小编带大家一起去深入的了解java的可变参数使用方式!
Effective Java - 构造器私有、枚举和单例
Effective Java - 构造器私有、枚举和单例
[TOC]
Singleton 是指仅仅被实例化一次的类。Singleton代表了无状态的对象像是方法或者本质上是唯一的系统组件。使类称为Singleton 会使它的客户端测试变得十分困难。因为不可能给Singleton替换模拟实现。除非实现一个充当其类型的接口