LiuXi

个人博客

MyBatis-Spring用法与源码系列

本系列从Spring集成mybatis的四种方式开始,逐步分析各种集成方式的底层源码实现方式 简介与用法 介绍Mybatis Spring组件及其用法,详见 MyBatis-Spring简介与用法 源码 根据各种用法,分析其源码实现,详见如下: MyBatis-Spring源码之SqlSessionFactory MyBatis-Spring源码之SqlSessionTemplate......

Spring基于注解事务代理类的生成

在读《Spring技术内幕》一书的过程中,IOC、AOP、事务等都是分模块讲解实现原理和源码。根据个人经验,将各个模块与项目中的使用方式相对应,由使用方式开始分析,顺藤摸瓜,能更加清晰的查看源码实现的脉络。 例如: 常规的web项目会在XML中配置Spring IOC容器初始化的监听器ContextLoaderListener,从ContextLoaderListener源码入手,就能挖掘......

Reactor和PReactor线程模型

前面两篇文章中主要归纳了五种I/O模型(阻塞I/O模型、非阻塞I/O模型、I/O多路复用模型、基于信号量的I/O模型和异步I/O模型),以及java对各种I/O模型的支持(BIO、NIO 和 AIO)。 对于服务端应用来说,需要对用户和其他系统提供多种服务。而服务的调用,流程一般为接收请求、处理和发送响应,其实就是I/O操作和逻辑处理。在互联网应用中,随着服务调用并发量的持续增长,针对不同的......

Java OIO NIO AIO简介

随着Java语言的发展,陆续支持多种I/O模型,包括 OIO/BIO、NIO、AIO/NIO2.0,下面主要介绍下 NIO 和 AIO 1 OIO/BIO OIO – Old I/O,相对于后面的 NIO 来说的,也可称之为 BIO(Bolcking I/O 阻塞 I/O),是JAVA语言中的标准I/O,在 java.io 包下 基于流Stream的阻塞I/O,用的比较多都比较熟悉,不做过......

Java I/O简介

Java I/O 是 Java SE 中比较重要的一部分内容,但对于阻塞非阻塞、同步异步的各种组合说法,有时会造成误解与困扰。 比如:同步I/O与阻塞I/O是一个含义么?同步阻塞I/O、同步非阻塞I/O又是什么含义呢?Java都支持哪些呢? 1 I/O调用 1.1 背景 既然是要梳理Java I/O,讨论的背景就主要是Java 支持的I/O类型,例如:文件读写、网络I/O等,本篇已jav......

Spring Schema 扩展

在使用Spring时候,一般会采用基于xml的配置方式。Spring基于xml schema提供了丰富的xml配置方式,以支持Spring的各种特性(例如:事物相关的tx schema,任务调度相关的task schema等)。 Spring在官方提供的xml schema配置方式外(可参考官方文档XML Schema-based configuration),还提供了自定义方式来扩展Spr......

MyBatis-Spring源码之基于xml的自动扫描

在首篇MyBatis-Spring简介与用法中介绍的用法三,需要配置扫描工具类MapperScannerConfigurer,指定扫描的包路径,自动扫描接口,并生成代理类。在用法四种介绍的,通过扩展Spring schema,使用mybatis:scan实现自动扫描,屏蔽底层实现细节,从而使coder从需要记忆指定扫描类MapperScannerConfigurer中解脱出来 -_- 1 ......

MyBatis-Spring源码之MapperScannerConfigurer

在首篇MyBatis-Spring简介与用法中介绍的用法二,需要对各个Dao层接口,配置代理工厂类。在用法三中介绍的,Mybatis Spring根据D指定扫描的包路径,自动扫描接口,并生成代理类,从而使coder从大量繁琐的配置中解脱出来 -_- 1 配置 首先回顾下,指定包路径扫描的配置文件的使用方式,如下: 123<bean class="org.mybatis.spring.......

MyBatis-Spring源码之MapperFactoryBean

在首篇MyBatis-Spring简介与用法中介绍的用法一,需要对各个Dao层接口,编写实现类,实现类中方法一般都是直接调用SqlSessionTemplate的相应方法。在用法二中介绍的,Mybatis Spring根据Dao层接口生成实现代理类,从而使coder从机械、繁琐的Dao层实现类编码中解脱出来。 1 配置 首先回顾下,生成Dao层接口实现类的配置文件的使用方式,如下: 1234......

MyBatis-Spring源码之SqlSessionTemplate

在MyBatis中,可以使用SqlSessionFactory来创建SqlSession。一旦你获得一个 session 之后,你可以使用它来执行映射语句,提交或回滚连接,最后,当不再需要它的时候,你可以关闭 session。 那么,为什么还需要使用SqlSessionTemplate呢? SqlSessionTemplate 是 MyBatis-Spring 的核心。 这个类负责管理 My......