[alibaba/druid]请问如何在项目启动时就初始化连接池

2025-11-11 892 views
2

大佬们好,我们的服务是spring-cloud服务,使用druid连接池,每次都是等到第一次请求数据库,才初始化连接池,这样每次我们有上线后的第一次处理请求,都超时, 所以我们想在服务启动的时候就初始化好连接池,请问大佬们如何实现?

回答

3

项目启动时手动调用getConnection不就ok了吗

6

项目启动时手动调用getConnection不就ok了吗

@zhangcunxin 大佬您好,大佬您能具体说下吗,比如描述个伪代码?

4
    @PostConstruct
    public void start() throws SQLException {
        DruidDataSource druidDataSource=new DruidDataSource();
        druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
        druidDataSource.setUrl("jdbc:mysql://xxxxxx");
        druidDataSource.setUsername("xxxx");
        druidDataSource.setPassword("xxxx");
        druidDataSource.setMaxWait(300000);
        druidDataSource.setMaxActive(100);
        druidDataSource.setMinIdle(1);
        druidDataSource.getConnection();
    }
1
    @PostConstruct
    public void start() throws SQLException {
        DruidDataSource druidDataSource=new DruidDataSource();
        druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
        druidDataSource.setUrl("jdbc:mysql://xxxxxx");
        druidDataSource.setUsername("xxxx");
        druidDataSource.setPassword("xxxx");
        druidDataSource.setMaxWait(300000);
        druidDataSource.setMaxActive(100);
        druidDataSource.setMinIdle(1);
        druidDataSource.getConnection();
    }

大佬,这种的硬这么做是可以实现效果,但是太硬编码了...... 我们的数据库配置都是配在nacos里的,。。这种就不太自动化了。

0
    @PostConstruct
    public void start() throws SQLException {
        DruidDataSource druidDataSource=new DruidDataSource();
        druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
        druidDataSource.setUrl("jdbc:mysql://xxxxxx");
        druidDataSource.setUsername("xxxx");
        druidDataSource.setPassword("xxxx");
        druidDataSource.setMaxWait(300000);
        druidDataSource.setMaxActive(100);
        druidDataSource.setMinIdle(1);
        druidDataSource.getConnection();
    }

大佬,这种的硬这么做是可以实现效果,但是太硬编码了...... 我们的数据库配置都是配在nacos里的,。。这种就不太自动化了。

我只是举个例子,我们也不是这么玩,根据你项目自己的需要,我们也是实现DataSource,然后根据具体情况去做的

5

配置initialSize

1

配置initialSize

这个正解,赞一个。