Spring Boot中Datasource配置(Spring Boot dbcp2資料來源配置)__Spring

來源:互聯網
上載者:User
資料庫連接池選擇演算法

在預設情況下, 資料庫連接可以使用DataSource池進行自動設定。下面是選取一個特定實現的演算法: 由於Tomcat資料來源串連池的效能和並發, 在tomcat可用時, 我們總是優先使用它。 如果HikariCP可用, 我們將使用它。 如果Commons DBCP可用, 我們將使用它, 但在生產環境不推薦使用它。 最後, 如果Commons DBCP2可用, 我們將使用它。

如果你使用spring-boot-starter-jdbc或spring-boot-starter-data-jpa 'starter POMs', 你將會自動擷取對tomcat-jdbc的依賴。

註:其他的串連池可以手動設定。 如果你定義自己的DataSource bean,自動設定不會發生。 配置一個預設的資料來源

DataSource配置通過外部設定檔的spring.datasource.*屬性控制。樣本中,你可能會在application.properties中聲明下面的片段:

spring.datasource.url=jdbc:mysql://localhost/testspring.datasource.username=dbuserspring.datasource.password=dbpassspring.datasource.driver-class-name=com.mysql.jdbc.Driver

其他可選的配置可以查看DataSourceProperties。同時注意你可以通過spring.datasource.*配置任何DataSource實現相關的特定屬性:具體參考你使用的串連池實現的文檔。

註:既然Spring Boot能夠從大多數資料庫的url上推斷出driver-class-name,那麼你就不需要再指定它了。 對於一個將要建立的DataSource串連池,我們需要能夠驗證Driver是否可用, 所以我們會在做任何事情之前檢查它。 比如, 如果你設定spring.datasource.driverClassName=com.mysql.jdbc.Driver,然後這個類就會被載入。 配置dbcp2資料來源

# 資料來源配置spring.datasource.url=jdbc:mysql://localhost:3306/ssb_testspring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.username=rootspring.datasource.password=root#串連池配置spring.datasource.type=org.apache.commons.dbcp2.BasicDataSourcespring.datasource.dbcp2.max-wait-millis=10000spring.datasource.dbcp2.min-idle=5spring.datasource.dbcp2.initial-size=5spring.datasource.dbcp2.validation-query=SELECT xspring.datasource.dbcp2.connection-properties=characterEncoding=utf8

spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource:指定使用那個串連池,預設使用tomcate-jdbc串連池。

dbcp2配置詳解http://blog.csdn.net/xiaolyuh123/article/details/73331093 測試資料來源代碼

package com.xiaolyuh;import net.minidev.json.JSONObject;import org.junit.Before;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.http.MediaType;import org.springframework.test.context.junit4.SpringRunner;import org.springframework.test.web.servlet.MockMvc;import org.springframework.test.web.servlet.MvcResult;import org.springframework.test.web.servlet.setup.MockMvcBuilders;import org.springframework.web.context.WebApplicationContext;import javax.sql.DataSource;import java.util.HashMap;import java.util.Map;import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;@RunWith(SpringRunner.class)@SpringBootTestpublic class DataSourceTests {    @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);    }}
源碼

https://github.com/wyh-spring-ecosystem-student/spring-boot-student/tree/releases

spring-boot-student-data-jpa工程



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.