1.new DruidDataSource并没有创建连接池,初始化数据库的参数
2.getConnection才会初始化连接池,假设初始化,就不会初始化;我个人理解这个设计比较好,就是真正使用的才会创建连接,懒加载机制,避免资源浪费
3.初始化会对数据库的连接参数做一些检查,通过Driver的connect方法去创建实际的数据连接
4.拿到实际的连接会包装下,放到connections这个数组即为连接池;初始化会创建配置的initialSize的数量的连接,类似线程池
5.初始化同时会创建和启动日志线程LogThread,创建线程CreatorThread,销毁线程DestroyThread
6.返回封装过原始连接的Druid连接