springboot配置druid连接池_springboot 整合阿里 druid 数据库连接池实战

情景

web 开发中连接数据库基本是必须的,阿里的 druid 是一款非常优秀的开源数据库连接池工具。

本文将介绍一下如何使用 springboot 整合 druid 数据源。

63afed1c0b8355c9d750316b749ddd43.png

快速开始

maven 引入

<?xml  version="1.0" encoding="UTF-8"?>            org.springframework.boot        spring-boot-starter-parent        2.1.1.RELEASE        4.0.0    spring-boot-druid    hello world                        org.springframework.boot            spring-boot-starter-web                                    org.springframework.boot            spring-boot-starter-data-jpa                            com.alibaba            druid-spring-boot-starter            1.1.17                            mysql            mysql-connector-java            5.1.47                                                        org.springframework.boot                spring-boot-maven-plugin                        

基本配置

这里使用了 druid-spring-boot-starter 引导类,所以最基本的配置只需要在 applicaiton.yml 文件中指定一下数据库连接信息就行了。

以 mysql 为例:

spring:  datasource:    druid:      username: root      password: 123456      url: jdbc:mysql://localhost:3306/padmin?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC      driver-class-name: com.mysql.jdbc.Driver

DruidConfig.java

当然 druid 还提供了其他更加强大的功能。

比如数据源的各种监控,黑白名单,sql 注入拦截等等。

package com.github.houbb.spring.boot.learn;import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;import java.util.HashMap;import java.util.Map;@Configurationpublic class DruidConfig {    @ConfigurationProperties(prefix = "spring.datasource")    @Bean    public DataSource druidDataSource() {        return new DruidDataSource();    }    //因为Springboot内置了servlet容器,所以没有web.xml,替代方法就是将ServletRegistrationBean注册进去    //加入后台监控    @Bean  //这里其实就相当于servlet的web.xml    public ServletRegistrationBean statViewServlet() {        ServletRegistrationBean bean =                new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");        //后台需要有人登录,进行配置        //bean.addUrlMappings(); 这个可以添加映射,我们在构造里已经写了        //设置一些初始化参数        Map initParas = new HashMap();        initParas.put("loginUsername", "admin");//它这个账户密码是固定的        initParas.put("loginPassword", "123456");        //允许谁能防伪        initParas.put("allow", "");//这个值为空或没有就允许所有人访问,ip白名单        //initParas.put("allow","localhost");//只允许本机访问,多个ip用逗号,隔开        //initParas.put("deny","");//ip黑名单,拒绝谁访问 deny和allow同时存在优先deny        initParas.put("resetEnable", "false");//禁用HTML页面的Reset按钮        bean.setInitParameters(initParas);        return bean;    }    //再配置一个过滤器,Servlet按上面的方式注册Filter也只能这样    @Bean    public FilterRegistrationBean webStatFilter() {        FilterRegistrationBean bean = new FilterRegistrationBean();        //可以设置也可以获取,设置一个阿里巴巴的过滤器        bean.setFilter(new WebStatFilter());        bean.addUrlPatterns("/*");        //可以过滤和排除哪些东西        Map initParams = new HashMap();        //把不需要监控的过滤掉,这些不进行统计        initParams.put("exclusions", "*.js,*.css,/druid/*");        bean.setInitParameters(initParams);        return bean;    }}

main 方法

package com.github.houbb.spring.boot.learn;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;import org.springframework.cache.annotation.EnableCaching;@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

访问

http://localhost:8080/druid/login.html

输入账户密码,就可以登录。

小结

这里的 druid-spring-boot-starter 的原理,大家可以参考下 实现你的自定义 springboot starter 实战。

Druid 作为一款优秀的数据连接池开源工具,个人是非常喜欢的,平时工作和学习也一直在使用。

当然,独木不成林。

druid 和 mybatis 配合起来使用效果更好,下一节我们就介绍一下如何使用 springboot 整合 mybatis + druid,感兴趣的小伙伴不妨关注一波,不迷路~

本实战系列用于记录 springboot 的实际使用和学习笔记。

希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波。

我是老马,期待与你的下次相遇。

拓展阅读

面试官:知道 springboot 的启动原理吗?

5 分钟入门 springboot 实战学习笔记

实现你的自定义 springboot starter 实战

52ac184d559efc7db0eb9e2de1f61248.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值