簡體   English   中英

帶有連接池的Spring Boot應用中的SQLServerDataSource

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM