Druid源码解读
文章平均质量分 59
wmy_0707
这个作者很懒,什么都没留下…
展开
-
druid源码解读-Druid源码分析其他类的代码分析DruidDataSourceC3P0Adapter、validConnectionChecker
Druid源码分析其他类的代码分析DruidDataSourceC3P0Adapter、validConnectionChecker今天在看源码DataSource同目录下的类的时候留意到DruidDataSourceC3P0Adapter和DruidDataSourceC3P0AdapterMBean这两个类,发现在前面看的源码中没有关于这块的调用,随即就开始研究一下具体用来做什么的?DruidDataSourceC3P0Adapter//构造方法public DruidDataSourceC3P原创 2021-11-20 00:17:37 · 1507 阅读 · 0 评论 -
druid源码解读-DruidXADataSource分布式的事务处理机制
DruidXADataSource分布式的事务处理机制druid增加了分布式的事务处理,查看源码中的DruidXADataSource的XA事务的连接池进行源码分析。DruidXADataSource类图DruidXADataSource继承了DruidDataSource,重写了getXAConnection方法,通过不同的数据库方言走不同的创建XA连接的方法。getXAConnection@Overridepublic XAConnection getXAConnection() thro原创 2021-11-18 20:17:03 · 1991 阅读 · 0 评论 -
druid源码解读-Druid-源码实践实现数据源版本V0.1.1的多线程
Druid-源码实践实现数据源版本V0.1.1的多线程实现init的时候开启一个守护销毁线程实现守护销毁线程根据目前数据源连接数量大于最大连接数的时候放在销毁队列init方法的时候创建守护线程//池中的数量小于最小数量 创建连接try{ if(poolingCount < minConnection){ for(int i=0;i<=minConnection-poolingCount;i++){ WmyPooledConn原创 2021-11-18 20:16:39 · 484 阅读 · 0 评论 -
druid源码解读--源码实践实现一个简单的数据源版本V0.1
Druid-源码实践实现一个简单的数据源版本V0.1实现获取连接的时候init数据源实现判断池中连接数量小于最小数量循环创建连接实现创建连接的简单查询WmyDataSource/** * @author MengyuWu * @version 1.0.0 * @ClassName WmyDataSource.java * @Description 重新写自己的数据源 * @createTime 2021年11月16日 19:35:00 */@Slf4jpublic class原创 2021-11-16 23:37:08 · 305 阅读 · 0 评论 -
druid源码解读--多数据场景下如何进行选择(DataSourceSelector)
Druid 多数据场景下如何进行选择?druid的多个数据源场景下,提供了三种数据源选择器,分别是按照名字、随机、粘性随机数据源选择器。数据源选择器DataSourceSelector// 数据源选择器DataSourceSelectorpublic interface DataSourceSelector { /** * Return a DataSource according to the implemention. * 返回数据源 */ Dat原创 2021-11-15 22:02:47 · 907 阅读 · 0 评论 -
druid源码解读--filter-chain设计模式
filter-chain设计模式if (filters.size() > 0) { FilterChainImpl filterChain = new FilterChainImpl(this); return filterChain.dataSource_connect(this, maxWaitMillis); }if (this.pos < filterSize) { return nextFil原创 2021-11-14 21:31:21 · 1119 阅读 · 0 评论 -
druid源码解读--为监控而生,具体监控如何做
druid --为监控而生,具体监控如何做结合昨天FilterChainImpl执行的FilterEventAdapter的拦截器处理逻辑,今天针对源码中的StatFilter源码进行分析,关注拦截sql执行中的监控参数处理。connection_connect连接时的拦截方法public ConnectionProxy connection_connect(FilterChain chain, Properties info) throws SQLException { //连接代理类原创 2021-11-12 21:27:55 · 560 阅读 · 0 评论 -
druid源码解读--一个查询sql在druid中经历了什么?
druid–一个查询sql在druid中经历了什么?druid的连接池配置中有PreparedStatementCache的配置,该信息解决了sql语句可以被预编译,并且保存在PreparedStatement这个对象中,而这个对象的存储就在PreparedStatementCache,对于oracle可以绕过数据库编译,有很大的提升,但是对于mysql,没有那么明显。本文针对DruidPooledPreparedStatement类中的executeQuery方法进行解读,尝试了解一下具体如何做预原创 2021-11-11 21:40:11 · 1696 阅读 · 0 评论 -
druid源码解读--Druid获取连接的getConnection源码解读
Druid获取连接的getConnection源码解读今日主要针对druid连接池中的DruidDataSource核心代码中的获取连接方法进行源码解读和学习。尤其针对获取连接中的getConnectionDirect方法进行详细的源码分析。DruidDataSource#getConnection//重写DruidAbstractDataSource的获取连接方法@Overridepublic DruidPooledConnection getConnection() throws SQLExc原创 2021-11-10 21:36:17 · 1832 阅读 · 0 评论 -
druid源码解读--druid连接池init方法源码解读
Druid连接池init方法源码解读今日主要针对druid连接池中的Data Source核心代码中的初始化方法进行源码解读和学习。尤其针对init方法中的createAndStartCreatorThread/createAndStartDestroyThread线程进行详细的源码分析。Druid#init时序图init初始化方法解析// init在Datasource初始化的时候并不会执行,是在第一次获取getConnection执行的public void init() throws SQ原创 2021-11-10 21:33:05 · 1053 阅读 · 0 评论 -
druid源码解读--druid的集成和源代码中关于配置文件的解读
拉取代码git clone https://github.com/alibaba/druid.git编译代码(跳过test)mvn clean install -Dmaven.test.skip=true集成demo项目pom文件<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version...原创 2021-11-10 21:27:09 · 1691 阅读 · 0 评论