https://blog.csdn.net/wangmx1993328/article/details/81865153

springboot 使用DruidDataSource 数据源

 

一、添加依赖

    <dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.26</version>
</dependency>

二、配置application.yml

spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/mxntest?characterEncoding=UTF-8
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
# 初始化大小,最小,最大
initialSize: 5
minIdle: 5
maxActive: 50
# 配置获取连接等待超时的时间
maxWait: 60000

三、Druid数据源配置

package com.example.demo.config;

/**
* @author 12084
* @create 2018-08-09 11:27
*/ import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.beans.factory.annotation.Value;
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 org.springframework.context.annotation.Primary; import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map; /**
* Druid数据源配置
*/
@Configuration
public class DataSourceConfig { private static String dbUrl; private static String username; private static String password; private static String driverClassName; private static int initialSize; private static int minIdle; private static int maxActive; private static int maxWait; /**
* 注册DruidServlet
*
* @return
*/
@Bean
public ServletRegistrationBean druidServletRegistrationBean() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
servletRegistrationBean.setServlet(new StatViewServlet());
servletRegistrationBean.addUrlMappings("/druid/*");
//登录查看信息的账号密码.
servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword", "123456");
return servletRegistrationBean;
} /**
* 注册DruidFilter拦截
*
* @return
*/
@Bean
public FilterRegistrationBean druidFilterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
Map<String, String> initParams = new HashMap<String, String>();
//设置忽略请求
initParams.put("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*");
filterRegistrationBean.setInitParameters(initParams);
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
} /**
* 配置DataSource
* @return
* @throws SQLException
*/
@Bean(initMethod = "init",destroyMethod = "close")
@Primary
public DataSource dataSource() throws SQLException {
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
druidDataSource.setUrl(dbUrl);
druidDataSource.setFilters("stat,wall");
druidDataSource.setInitialSize(initialSize);
druidDataSource.setMinIdle(minIdle);
druidDataSource.setMaxActive(maxActive);
druidDataSource.setMaxWait(maxWait);
druidDataSource.setUseGlobalDataSourceStat(true);
druidDataSource.setDriverClassName(driverClassName);
return druidDataSource;
} @Value("${spring.datasource.url}")
public void setDbUrl(String dbUrl) {
DataSourceConfig.dbUrl = dbUrl;
} @Value("${spring.datasource.username}")
public void setUsername(String username) {
DataSourceConfig.username = username;
} @Value("${spring.datasource.password}")
public void setPassword(String password) {
DataSourceConfig.password = password;
} @Value("${spring.datasource.driver-class-name}")
public void setDriverClassName(String driverClassName) {
DataSourceConfig.driverClassName = driverClassName;
} @Value(value = "${spring.datasource.initialSize}")
public void setInitialSize(int initialSize) {
DataSourceConfig.initialSize = initialSize;
} @Value(value = "${spring.datasource.minIdle}")
public void setMinIdle(int minIdle) {
DataSourceConfig.minIdle = minIdle;
} @Value(value = "${spring.datasource.maxActive}")
public void setMaxActive(int maxActive) {
DataSourceConfig.maxActive = maxActive;
} @Value(value = "${spring.datasource.maxWait}")
public void setMaxWait(int maxWait) {
DataSourceConfig.maxWait = maxWait;
} }

四、http://localhost:8080/druid/index.html 就可以查看,如果配置密码则输入密码

    //登录查看信息的账号密码.
servletRegistrationBean.addInitParameter("loginUsername", "admin");
servletRegistrationBean.addInitParameter("loginPassword", "123456");

Spring Boot 自定义数据源 DruidDataSource的更多相关文章

  1. Spring Boot自定义starter必知必会条件

    前言 在目前的Spring Boot框架中,不管是Spring Boot官方还是非官方,都提供了非常多的starter系列组件,助力开发者在企业应用中的开发,提升研发人员的工作效率,Spring Bo ...

  2. spring boot自定义线程池以及异步处理

    spring boot自定义线程池以及异步处理@Async:什么是线程池?线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务.线程池线程都是后台线程.每个线程都使 ...

  3. Spring Boot自定义配置与加载

    Spring Boot自定义配置与加载 application.properties主要用来配置数据库连接.日志相关配置等.除了这些配置内容之外,还可以自定义一些配置项,如: my.config.ms ...

  4. Spring Boot多数据源配置(二)MongoDB

    在Spring Boot多数据源配置(一)durid.mysql.jpa 整合中已经讲过了Spring Boot如何配置mysql多数据源.本篇文章讲一下Spring Boot如何配置mongoDB多 ...

  5. (43). Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

    在上一篇我们介绍了多数据源,但是我们会发现在实际中我们很少直接获取数据源对象进行操作,我们常用的是jdbcTemplate或者是jpa进行操作数据库.那么这一节我们将要介绍怎么进行多数据源动态切换.添 ...

  6. Spring Boot 2.X(四):Spring Boot 自定义 Web MVC 配置

    0.准备 Spring Boot 不仅提供了相当简单使用的自动配置功能,而且开放了非常自由灵活的配置类.Spring MVC 为我们提供了 WebMvcConfigurationSupport 类和一 ...

  7. Spring Boot自定义Redis缓存配置,保存value格式JSON字符串

    Spring Boot自定义Redis缓存,保存格式JSON字符串 部分内容转自 https://blog.csdn.net/caojidasabi/article/details/83059642 ...

  8. 玩转Spring Boot 自定义配置、导入XML配置与外部化配置

    玩转Spring Boot 自定义配置.导入XML配置与外部化配置       在这里我会全面介绍在Spring Boot里面如何自定义配置,更改Spring Boot默认的配置,以及介绍各配置的优先 ...

  9. 峰哥说技术:06-手撸Spring Boot自定义启动器,解密Spring Boot自动化配置原理

    Spring Boot深度课程系列 峰哥说技术—2020庚子年重磅推出.战胜病毒.我们在行动 06  峰哥说技术:手撸Spring Boot自定义启动器,解密Spring Boot自动化配置原理 Sp ...

随机推荐

  1. 属性复制神器-mapstruct

    我们之前说到项目中会用到各种object,vo,bo,dto等等.我们需要在不同的对象上复制属性. 一.BeanUtils和PropertyUtils 我们最常用的就是Common包里面的BeanUt ...

  2. 如何让元素支持 height:100%效果

    如何让元素支持 height:100%效果? 有两种方法.(1) 设定显式的高度值. 这个没什么好说的,例如,设置 height:600px,或者可以生效的百分比值高度.例如,我们比较常见的:html ...

  3. pip install scrapy报错:error: Unable to find vcvarsall.bat解决方法

    今天在使用pip install scrapy 命令安装Scrapy爬虫框架时,出现了很让人头疼的错误,错误截图如下: 在网上查找解决方法时,大致知道了问题的原因.是因为缺少C语言的编译环境,其中一种 ...

  4. java 基本语法(四) 流程控制(一) 分支结构

    if(条件表达式){ 执行表达式} 结构二:二选一if(条件表达式){ 执行表达式1}else{ 执行表达式2} 结构三:n选一if(条件表达式){ 执行表达式1}else if(条件表达式){ 执行 ...

  5. .net core微服务——gRPC(下)

    序 上一篇博客把grpc的概念说了个大概,介绍了proto的数据类型,基本语法,也写了个小demo,是不是没那么难? 今天要从理论到实际,写两个微服务,并利用grpc完成两者之间的通信.只是作为dem ...

  6. (1)为什么要使用webpack?

    1.在网页中有哪些常见的静态资源? Js: .js .jsx .coffee .ts Css: .css .less .sass .scss Images: .jpg .png .gif .bmp . ...

  7. Linux内存大页设置

    实际环境中,遇到3次由于内存大页设置参数不合理或者错误,导致系统内存不足,或者数据库内存不足的问题. 按照如下方式,推荐设置大页参考下发设置! 参考HugePages on Oracle Linux ...

  8. INS(Instagram)如何绑定谷歌二次验证码/谷歌身份验证/双重认证?

    1.打开Ins,找到双重验证界面   打开Ins,点击右上角“三”-“设置”-“安全”-“双重验证”-“选择安全验证方式”-“身份验证应用”-“立即开启”-“手动设置”-“复制密钥”-“输入验证码” ...

  9. js原型链结构理解

    在一般的面向对象的语言中,都存在类(class)的概念,类就是对象的模板,对象就是类的实例. 但在js中是没有类的定义的(万物皆是对象).  题外话:但是在ES6中提供了更接近传统语言的写法,引入了C ...

  10. ElasticSearch(二)Kibana、版本控制

    Kibana简介: Kibana可视化界面 Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作. 你用Kibana来搜索,查看,并和存储在Elasticsearch ...