第15章—數據庫連接池(DBCP2)


spring boot 系列學習記錄:http://www.cnblogs.com/jinxiaohang/p/8111057.html

碼雲源碼地址:https://gitee.com/jinxiaohang/springboot

  

  DBCP(DataBase connection pool),數據庫連接池。是 apache 上的一個 java 連接池項目,也是 tomcat 使用的連接池組件。單獨使用dbcp需要2個包:commons-dbcp.jar,commons-pool.jar由於建立數據庫連接是一個非常耗時耗資源的行為,所以通過連接池預先同數據庫建立一些連接,放在內存中,應用程序需要建立數據庫連接時直接到連接池中申請一個就行,用完后再放回去。

  本次練習在之前整合Spring Data JPA基礎上進行。

一、引入依賴

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-dbcp2</artifactId>
</dependency>
View Code

 

二、添加配置文件(application.properties)

# 數據源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
#連接池配置
spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
#初始化連接:連接池啟動時創建的初始化連接數量
spring.datasource.dbcp2.initial-size=50
#最大活動連接:連接池在同一時間能夠分配的最大活動連接的數量, 如果設置為非正數則表示不限制
spring.datasource.dbcp2.max-active=250
#最大空閑連接:連接池中容許保持空閑狀態的最大連接數量,超過的空閑連接將被釋放,如果設置為負數表示不限制
spring.datasource.dbcp2.max-idle=50
#最小空閑連接:連接池中容許保持空閑狀態的最小連接數量,低於這個數量將創建新的連接,如果設置為0則不創建
spring.datasource.dbcp2.min-idle=5
#最大等待時間:當沒有可用連接時,連接池等待連接被歸還的最大時間(以毫秒計數),超過時間則拋出異常,如果設置為-1表示無限等待
spring.datasource.dbcp2.max-wait-millis=10000
#SQL查詢,用來驗證從連接池取出的連接,在將連接返回給調用者之前.如果指定,則查詢必須是一個SQL SELECT並且必須返回至少一行記錄
spring.datasource.dbcp2.validation-query=SELECT 1
#當建立新連接時被發送給JDBC驅動的連接參數,格式必須是 [propertyName=property;]。注意:參數user/password將被明確傳遞,所以不需要包括在這里。
spring.datasource.dbcp2.connection-properties=characterEncoding=utf8

# JPA配置
spring.jpa.hibernate.ddl-auto=update
#spring.jpa.show-sql用來設置hibernate操作的時候在控制台顯示其真實的sql語句。
spring.jpa.show-sql=true
#讓控制器輸出的json字符串格式更美觀。
spring.jackson.serialization.indent-output=true
View Code

 

三、添加測試類

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.junit4.SpringRunner;

import javax.sql.DataSource;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DataSourceTest {
    @Autowired
    ApplicationContext applicationContext;

    @Autowired
    DataSourceProperties dataSourceProperties;

    @Test
    public void testDataSource() throws Exception {
        // 獲取配置的數據源
        DataSource dataSource = applicationContext.getBean(DataSource.class);
        // 查看配置數據源信息
        System.out.println(dataSource);
        System.out.println(dataSource.getClass().getName());
        System.out.println(dataSourceProperties);
    }
}
View Code

 

四、啟動測試

啟動測試類:整合成功。

 

啟動demo,訪問接口是否正常:數據正常顯示,sql語句正常打印,整合成功。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM