1 回答
TA贡献1818条经验 获得超3个赞
若要只创建一次连接池,可以使其成为类中的静态变量。为此,您只需将方法“创建连接池”的代码替换为以下块:
private static DataSource dataSource;
static {
HikariConfig config = new HikariConfig();
config.setJdbcUrl(String.format("jdbc:mysql:///%s", DB_NAME));
config.setUsername(DB_USER);
config.setPassword(DB_PASS);
config.addDataSourceProperty("socketFactory", "com.google.cloud.sql.mysql.SocketFactory");
config.addDataSourceProperty("cloudSqlInstance", CLOUD_SQL_CONNECTION_NAME);
config.addDataSourceProperty("useSSL", "false");
config.setMaximumPoolSize(5);
config.setMinimumIdle(5);
config.setConnectionTimeout(10000); // 10 seconds
config.setIdleTimeout(600000); // 10 minutes
config.setMaxLifetime(1800000); // 30 minutes
dataSource = new HikariDataSource(config);
}
private DataSource createConnectionPool() {
return dataSource;
}
请记住,方法“创建连接池”现在的目的是不破坏可能被调用的类的其余部分的代码。
现在,您可以使用变量“数据源”,而不是调用方法“创建连接池”。
添加回答
举报