自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Druid源码分析(总结)

Druid源码分析Druid Spring配置项

2022-05-21 16:21:16 1565

原创 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 531

原创 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 696

原创 druid源码分析—DruidDataSource的基本分析(七)

销毁连接分析在创建连接的init()方法,注意到创建了线程DestroyConnectionThread用来销毁连接的,线程循环是通过timeBetweenEvictionRunsMillis 参数来设置连接检查的时间间隔。 public void run() { //计数器减一 initedLatch.countDown(); for (;;) { // 从前面开始删除

2022-05-17 23:15:47 271

原创 druid源码分析—DruidDataSource的基本分析(六)

DruidDataSource参数解析testOnBorrow当testOnBorrow为true时,每次获取连接都会进行连接校验,当连接不可用,则关闭连接。不推荐使用 if (testOnBorrow) { //测试连接 boolean validate = testConnectionInternal(poolableConnection.holder, poolableConnection.conn);

2022-05-16 22:53:32 354

原创 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 1681

原创 druid源码分析—DruidDataSource的基本分析(四)

Druid的守护线程CreateConnectionThread当不存在创建任务createScheduler时,则创建守护线程CreateConnectionThread。该线程的主要作用是创建连接。 protected void createAndStartCreatorThread() { if (createScheduler == null) { String threadName = "Druid-ConnectionPool-Create-"

2022-05-14 17:07:05 494

原创 druid源码分析—DruidDataSource的基本分析(三)

druid源码分析—DruidDataSource的基本分析(三)获取连接(getConnection)getConnection接口代码主要分为两个部分:初始化连接池获取连接初始化连接池创建驱动创建驱动并根据数据库类别进行加载。 initFromSPIServiceLoader(); resolveDriver(); initCheck(); initExceptionSorter();

2022-05-13 02:12:51 444

原创 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 1416

原创 druid源码分析—DruidDataSource的基本分析(一)

druid源码分析(一)

2022-05-10 22:05:20 815

原创 Windows 电脑查看历史WIFI密码

1、打开命令行cmd.exe,输入命令:netsh wlan show profile。2、输入命令:netsh wlan export profile name=“所选wifi名称” folder=. key=clear会保存WIFI信息到当前文件,名称为:WLAN-所选wifi名称.xml。3、密码由<keyMaterial>包裹。...

2021-04-11 23:41:51 760 3

原创 double转BigDecimal精度丢失的解决方案。

因为double有精度丢失的问题,所以关于小数点的计算通常使用BigDecimal来计算。但直接调用BigDecimal的构造函数,会出现精度丢失问题。public BigDecimal(double val) { this(val,MathContext.UNLIMITED);}例子:public class Demo1 { public static void main(String[] args) { //输出结果:4.7999999999999998223

2020-12-29 15:05:32 1543 1

原创 Redis 五种数据结构和命令的使用(二)

Redis的数据结构Redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构。value的数据结构:字符串类型 (string)哈希类型 (hash) : map格式列表类型 (list) : linkedlist格式。支持重复元素集合类型 (set) : 不允许重复元素有序集合类型 (zset):sortedset不允许重复元素,且...

2020-04-22 11:55:37 156

原创 Redis 概述与安装(一)

redis 概述Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Red...

2020-04-20 11:47:19 156

原创 Spring Cloud Alibaba 和Spring Cloud 对应的版本关系。

Spring Cloud Alibaba 2.1.0 RELEASE对应的Spring Cloud Greenwich版本Spring Cloud Alibaba 2.2.0 RELEASE对应的Spring Cloud Hoxton版本Spring Cloud Alibaba 2.2.1 RELEASE对应的Spring Cloud Hoxton.SR3版本...

2020-03-24 17:04:03 5276

原创 Spring Boot 2.2.5.RELEASE相关的Spring Cloud版本号修改

今天准备创建一个基于Spring Boot 2.2.5.RELEASE的Spring Cloud项目。需要修改Spring Cloud的版本号为:Hoxton.SR3Spring Cloud 版本号

2020-03-23 15:30:29 3886

原创 Java 线程池的使用

线程池的概念当我们使用线程时,就会去创建(new)一个线程,这样实现起来很方便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低 系统的效率,因为频繁创建线程和销毁线程需要时间。利用线程池可使得线程可以复用,就是执行完一个任务,并不被销毁,继续执行其他的任务。...

2020-03-19 17:08:07 92

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除