[英]SQLServerDataSource in spring boot app with connection pool
如果我理解此答案,我將嘗試使用SQLServerDataSource
設置池https://stackoverflow.com/a/25573035/1262568
public DataSource dataSource() {
DataSourceBuilder factory = DataSourceBuilder
.create(this.properties.getClassLoader())
.driverClassName(this.properties.getDriverClassName())
.url(this.properties.getUrl())
.username(this.properties.getUsername())
.password(this.properties.getPassword());
return factory.build();
}
從以這種方式創建的DataSource
獲取連接將使用可用的連接池之一返回池化的連接。 但是,如果我想使用SQLServerDataSource
代替DataSourceBuilder
,又會自動使用可用的連接池之一怎么辦?
public DataSource dataSource() {
SQLServerDataSource sqlServerDataSource = new SQLServerDataSource();
sqlServerDataSource.setUser(UserName);
sqlServerDataSource.setPassword(Password);
sqlServerDataSource.setURL(Url);
return sqlServerDataSource;
}
還會自動使用可用的連接池之一嗎?
不,不會。 SQLServerDataSource
是SQL Server(驅動程序)特定的類,而DataSourceBuilder
是Spring類。 只有后者知道Spring及其配置以及已配置的連接池。
您有理由需要使用SQLServerDataSource
嗎?
要甚至從池訪問本地連接,請使用
SQLServerConnection conn = connection.unwrap(SQLServerConnection.class);
只需記住在connection
而不是conn
上調用close()
即可將連接返回到池中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.