Spring Boot使用Druid連接池的示例代碼
Druid是Java語言中最好的數(shù)據(jù)庫連接池。Druid相比于其他的數(shù)據(jù)庫連接池,有兩大特性:
- 監(jiān)控數(shù)據(jù)庫,有利于分析線上數(shù)據(jù)庫問題
- 更容易擴展,同時也很高效。
今天演示一下Spring Boot集成Druid。
實戰(zhàn)
1、添加Maven依賴。
Spring Boot版本使用的是1.x的,2.x的版本druid starter還不支持。不過自定義也是沒問題的。
<!--starter-web 方便我們查看效果--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--使用Mybatis也可以,druid提供的只是連接池--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.6</version> </dependency>

配置Druid
2、Druid應(yīng)用的配置。
server: port: 9011 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver druid: initial-size: 5 max-active: 10 min-idle: 5 max-wait: 60000 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 validation-query: select 1 validation-query-timeout: 60000 test-on-borrow: false test-on-return: false test-while-idle: true time-between-eviction-runs-millis: 60000 filter: stat: log-slow-sql: true db-type: mysql slow-sql-millis: 2000 stat-view-servlet: login-username: druid login-password: druid allow: 127.0.0.1 url-pattern: /druid/* username: root password: 123456 url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8
通過JavaBean的配置更靈活一些,我們通過JavaBean來配置。
@Configuration
public class DruidConfig {
@Bean
public JdbcTemplate jdbcTemplate(){
return new JdbcTemplate(druidDataSource());
}
// ConfigurationProperties可以直接把應(yīng)用配置的spring.datasource.druid屬性開頭的值注入到DruidDataSource中
@ConfigurationProperties(prefix = "spring.datasource.druid")
@Bean(initMethod = "init",destroyMethod = "close")
public DruidDataSource druidDataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
// 添加druid的監(jiān)控過濾器,當(dāng)前只演示監(jiān)控的功能,因此只有一個過濾器,可以實現(xiàn)多個過濾器
LinkedList<Filter> filtersList = new LinkedList();
filtersList.add(filter());
druidDataSource.setProxyFilters(filtersList);
return druidDataSource;
}
@Bean
public Filter filter(){
StatFilter statFilter = new StatFilter();
// SQL執(zhí)行時間超過2s種的被判定為慢日志
statFilter.setSlowSqlMillis(2000);
//顯示慢日志
statFilter.setLogSlowSql(true);
//合并SQL,有時,一些相同的慢日志過多影響閱讀,開啟合并功能
statFilter.setMergeSql(true);
return statFilter;
}
// 監(jiān)控的面板
@Bean
public ServletRegistrationBean servletRegistrationBean(){
// 注冊自己的Sevlet
return new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
}
}
3、新建SQL執(zhí)行測試
使用JDBCTeplate選取數(shù)據(jù)庫中的數(shù)據(jù),我們只是演示Druid的監(jiān)控效果。
@RestController
@SpringBootApplication
public class DaoApplication {
public static void main(String[] args) {
SpringApplication.run(DaoApplication.class,args);
}
@Autowired
JdbcTemplate jdbcTemplate;
@RequestMapping("/test")
public List test(){
final List<Integer> idList = new LinkedList<Integer>();
jdbcTemplate.query("select * from sh_test1", new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs) throws SQLException {
idList.add(rs.getInt(1));
}
});
return idList;
}
}
運行查看效果



5、演示完畢
到這一步,Druid已經(jīng)可以在Spring Boot中使用了,Druid提供了很多監(jiān)控的選項,文章篇幅有限, 只介紹一下Druid集成Spring Boot的用法。
最后
這篇文章演示了一下Druid在SpringBoot中的使用。有關(guān)Druid的使用請看下面的參考。
參考
[Druid常見用法] (https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Spring boot整合連接池實現(xiàn)過程圖解
- SpringBoot整合Druid數(shù)據(jù)庫連接池的方法
- Spring Boot ActiveMQ連接池配置過程解析
- springboot2.0使用Hikari連接池的方法(替換druid)
- 詳解Spring Boot Mysql 版本驅(qū)動連接池方案選擇
- Spring Boot如何使用HikariCP連接池詳解
- springboot配置druid連接池的方法示例
- spring boot配置druid連接池的完整步驟
- SpringBoot開發(fā)案例之配置Druid數(shù)據(jù)庫連接池的示例
- spring boot配置MySQL數(shù)據(jù)庫連接、Hikari連接池和Mybatis的簡單配置方法
- Spring Boot中使用MongoDB的連接池配置的方法
- Spring Boot 如何整合連接池
相關(guān)文章
SpringCloud使用FFmpeg對視頻壓縮處理的代碼示例
在現(xiàn)代的視頻處理系統(tǒng)中,壓縮視頻以減小存儲空間、加快傳輸速度是一項非常重要的任務(wù),FFmpeg作為一個強大的開源工具,廣泛應(yīng)用于音視頻的處理,包括視頻的壓縮和格式轉(zhuǎn)換等,本文將通過Java代碼示例,向您展示如何使用FFmpeg進行視頻壓縮,并介紹相關(guān)參數(shù)的設(shè)置2024-11-11
SpringSecurity+Redis認證過程小結(jié)
這篇文章主要介紹了SpringSecurity+Redis認證過程小結(jié),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01

