alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.97k stars 8.58k forks source link

在使用 druid-spring-boot-starter 的时候,是需要显示调用 database.init()吗? #2207

Closed enhon1992 closed 11 months ago

enhon1992 commented 6 years ago

在使用 druid-spring-boot-starter 的时候,是需要显示调用 database.init()吗? ,在spring项目中集成druid的时候,xml中可以指定init-method 和 destory-method

lihengming commented 6 years ago

不需要

enhon1992 commented 6 years ago

项目启动之后,实际上连接池同数据库是没有建立连接的, 因为没有初始化 当第一次从连接池中去获取连接的时候,就会进行初始化。 目前有配置项可以实现 项目一启动就同数据库建立连接(就是一启动就初始化) 就像在spring项目中集成druid的时候,xml中可以指定init-method一样

yefen commented 6 years ago

spring boot starter 通过yml配置数据源参数;目前只有在第一次请求执行sql的时候初始化连接池。 请问可以在项目启动的时候就直接初始化连接池么?[asyncInit]这个参数貌似没有效果!

xianshi122 commented 6 years ago

同问,试用下来只有第一次请求时才会初始化连接。 需要的效果事 系统启动时就初始化链接。但目前看起来似乎做不到?或者是我不会配置

enhon1992 commented 6 years ago

我感觉应该是这样的 ,springboot集成 Redis 的时候 ,也是第一获取链接的时候 才会同Redis服务器建立物理链接

lihengming commented 6 years ago

1.1.8 修改为创建DruidDataSource的时候会自动触发一次init()

JeremyZheng commented 6 years ago

@lihengming 这个问题是不是没有解决, 用1.1.9依然存在这个问题,看1.1.8的提交记录也没有这个 issue

pocketdigi commented 5 years ago

@lihengming 这个问题是不是没有解决, 用1.1.9依然存在这个问题,看1.1.8的提交记录也没有这个 issue

创建DataSource时加个属性 properties.put(DruidDataSourceFactory.PROP_INIT,"true");

kuqi007 commented 5 years ago

1.1.8 修改为创建DruidDataSource的时候会自动触发一次init()

亲测1.10版本确实会触发一次init()