摘要: 源码详解系列(六) ------ 全面讲解druid的使用和源码 已停更 `druid`是用于创建和管理连接,利用“池”的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制、连接可靠性测试、连接泄露控制、缓存语句等功能,另外,`druid`还扩展了监控统计、防御SQL注入等功能。 本文将包含以下内容(因为篇幅较长,可根据需要选择阅读): 1. `druid`的使用方法(入门案例、`JDNI`使用、监控统计、防御SQL注入) 2. `druid`的配置参数详解 3. `druid`主要源码分析 阅读全文
posted @ 2020-01-10 14:13 子月生 阅读(6630) 评论(0) 推荐(2) 编辑
摘要: 本文将介绍以下内容: 1. 什么是`JMX`; 2. `JMX`的基础架构; 3. 如何使用`JMX`。 阅读全文
posted @ 2020-01-01 15:02 子月生 阅读(3292) 评论(1) 推荐(0) 编辑
摘要: 本文主要讲解SPI,包含以下内容: 1. SPI的介绍 2. SPI的入门案例 3. SPI在JDBC中的应用 4. SPI源码分析 阅读全文
posted @ 2019-12-29 13:14 子月生 阅读(1601) 评论(1) 推荐(2) 编辑
摘要: 本文将包含以下内容(因为篇幅较长,可根据需要选择阅读): 1. `c3p0`的使用方法(入门案例、`JDNI`使用) 2. `c3p0`的配置参数详解 3. `c3p0`主要源码分析 阅读全文
posted @ 2019-12-22 18:11 子月生 阅读(2141) 评论(2) 推荐(4) 编辑
摘要: 源码详解系列(四) ------ DBCP2的使用和分析(包括JNDI和JTA支持) 已停更 `DBCP`用于创建和管理连接,利用“池”的方式复用连接减少资源开销,和其他连接池一样,也具有连接数控制、连接有效性检测、连接泄露控制、缓存语句等功能。目前,`tomcat`自带的连接池就是`DBCP`,Spring开发组也推荐使用`DBCP`,阿里的`druid`也是参照`DBCP`开发出来的。 `DBCP`除了我们熟知的使用方式外,还支持通过`JNDI`获取数据源,并支持获取`JTA`或`XA`事务中用于`2PC`(两阶段提交)的连接对象,本文也将以例子说明。 阅读全文
posted @ 2019-12-07 23:09 子月生 阅读(3218) 评论(2) 推荐(0) 编辑
摘要: 源码详解系列(三) --dom4j的使用和分析(重点对比和DOM、SAX的区别) dom4j 就是用来读写 xml 的。相比 JDK 的 JAXP,dom4j 的 API 更容易使用,所以,目前 dom4j 在国内还是比较受欢迎。 本文主要讲的是如何使用 dom4j 以及分析 dom4j 的源码,除此之外,我希望回答更多的问题,例如,什么是 DOM?什么是 SAX?dom4j 真的有那么快吗?要不要使用 dom4j? 阅读全文
posted @ 2019-11-27 18:15 子月生 阅读(2170) 评论(0) 推荐(2) 编辑
摘要: 源码详解系列(二) -- jdbc-mysql的使用和分析 JDBC 规定了 java 应用应该如何连接和操作数据库,它是规范,而非实现,具体的实现由不同的数据库厂商提供。对我们来说,JDBC 有效地将我们的代码和具体的数据库实现解耦合,这是非常有好处的,例如,当我的数据库从 mysql 切换到 oracle 时,几乎不需要调整代码。 本文将详细介绍如何使用 JDBC,这里使用 MySQL Connector/J 8.0 作为具体实现。 阅读全文
posted @ 2019-11-26 18:20 子月生 阅读(1358) 评论(1) 推荐(1) 编辑
摘要: 简单来说,cglib 就是用来生成代理类的。与 JDK 自带的动态代理相比,有以下几点不同: 1. JDK 动态代理要求被代理类实现某个接口,而 cglib 无该要求。 2. 在目标方法的执行速度上,由于采用了`FastClass`机制,cglib 更快(以空间换时间,后面会讲到)。 阅读全文
posted @ 2019-11-23 12:00 子月生 阅读(2311) 评论(2) 推荐(2) 编辑