首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Druid源码阅读2-DruidDataSource的init过程

DruidDataSource的使用都是创建DruidDataSource对象,set配置参数之后,调用init方法。...通过mock测试实例化DruidDataSourceDruidDataSource ds = new DruidDataSource(); ds.setUrl("jdbc:fake:dragoon_v25masterdb...生成DruidDataSource的id。这是一个AtomicInteger,从1开始递增,每个DataSource都会加1。 1.2 初始化 初始化jdbcUrl。trim处理。...但是在默认的的初始化过程中,如果不通过其他配置参数指定,这个条件不会被触发,这可以看做是DruidDataSource的懒加载,只有真正需要Connection的时候,才会去创建物理的连接。...2.总结 init过程,对DruidDataSource进行了初始化操作,为了防止多线程并发场景下进行init操作,采用了Double Check的方式,配合ReentrentLock两次判断来实现。

1.1K20

Druid源码阅读9-DruidDataSource和DruidConnection中的状态

中的状态: 字段 类型 所在类 默认值 说明 closing volatile boolean DruidDataSource false 关闭中状态,调用close方法设置为true,如果关闭完成,则这个状态设置为...false. closed volatile boolean DruidDataSource false 关闭完成状态,close方法调用完成为true.这样连接池将不可使用。...enable volatile boolean DruidDataSource true 可用状态,默认为true,当调用close完成之后,设置为false。这样连接池将不可用。...keepAlive volatile boolean DruidDataSource false keepAlive开关,由用户自行设置,如果开启了keepAlive,则在shrink方法中将符合条件的连接回收到...inited volatile boolean DruidDataSource false 初始化状态,默认为false,调用init之后设置为true标识初始化完成,之后调用restart设置为false

59020
领券