![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
druid
druid源码分析
Java丶小明
这个作者很懒,什么都没留下…
展开
-
druid源码分析—DruidDataSource的基本分析(九)
DruidDataSource Filter使用SPI过滤器初始化init方法进行SPI的过滤器加载,通过阅读ServiceLoader方法的API,了解到需要在resources/META-INF/services/,下创建名字为接口的全路径名称文件,内容为:实现类的全路径。发现文件中并没有com.alibaba.druid.filter.Filter,也就是这个方法根本不会加载。 private void initFromSPIServiceLoader() { //跳过加载SP原创 2022-05-19 23:13:22 · 511 阅读 · 0 评论 -
druid源码分析—DruidDataSource的基本分析(八)
数据源的关闭方法(close) public void close() { if (LOG.isInfoEnabled()) { LOG.info("{dataSource-" + this.getID() + "} closing ..."); } //获取锁 lock.lock(); try { //如果已经关闭,则退出 if (this.closed原创 2022-05-18 22:06:53 · 682 阅读 · 0 评论 -
druid源码分析—DruidDataSource的基本分析(七)
销毁连接分析在创建连接的init()方法,注意到创建了线程DestroyConnectionThread用来销毁连接的,线程循环是通过timeBetweenEvictionRunsMillis 参数来设置连接检查的时间间隔。 public void run() { //计数器减一 initedLatch.countDown(); for (;;) { // 从前面开始删除原创 2022-05-17 23:15:47 · 262 阅读 · 0 评论 -
druid源码分析—DruidDataSource的基本分析(六)
DruidDataSource参数解析testOnBorrow当testOnBorrow为true时,每次获取连接都会进行连接校验,当连接不可用,则关闭连接。不推荐使用 if (testOnBorrow) { //测试连接 boolean validate = testConnectionInternal(poolableConnection.holder, poolableConnection.conn);原创 2022-05-16 22:53:32 · 327 阅读 · 0 评论 -
druid源码分析—DruidDataSource的基本分析(五)
DruidDataSource Spring Bean 初始化在Spring Boot项目中,我们只需要简单声明一下Druid就会自动调用,DruidDataSource 的init()方法@Configuration@ConditionalOnClass(DruidDataSource.class)@AutoConfigureBefore(DataSourceAutoConfiguration.class)@EnableConfigurationProperties({DruidStatProp原创 2022-05-14 23:13:03 · 1656 阅读 · 0 评论 -
druid源码分析—DruidDataSource的基本分析(四)
Druid的守护线程CreateConnectionThread当不存在创建任务createScheduler时,则创建守护线程CreateConnectionThread。该线程的主要作用是创建连接。 protected void createAndStartCreatorThread() { if (createScheduler == null) { String threadName = "Druid-ConnectionPool-Create-"原创 2022-05-14 17:07:05 · 454 阅读 · 0 评论 -
druid源码分析—DruidDataSource的基本分析(三)
druid源码分析—DruidDataSource的基本分析(三)获取连接(getConnection)getConnection接口代码主要分为两个部分:初始化连接池获取连接初始化连接池创建驱动创建驱动并根据数据库类别进行加载。 initFromSPIServiceLoader(); resolveDriver(); initCheck(); initExceptionSorter();原创 2022-05-13 02:12:51 · 429 阅读 · 0 评论 -
druid源码分析—DruidDataSource的基本分析(二)
druid源码分析—DruidDataSource的基本分析(二)getConnectionInternal基本分析DruidDataSource 参数记录//已使用的连接数量private int activeCount = 0;//池内连接数量,init()方法会创建连接并赋值private int poolingCount = 0;//连接数量private long connectCount = 0L;//最高峰值记录private int activePeak = 0;//最原创 2022-05-12 00:14:18 · 1379 阅读 · 0 评论 -
druid源码分析—DruidDataSource的基本分析(一)
druid源码分析(一)原创 2022-05-10 22:05:20 · 801 阅读 · 0 评论