Spring Boot 自定义数据源DruidDataSource代码

网友投稿 371 2022-12-24


Spring Boot 自定义数据源DruidDataSource代码

这篇文章主要介绍了Spring Boot 自定义数据源DruidDataSource代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、添加依赖

com.alibaba

druid

1.0.26

二、配置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 maxAcnqCsAHDtive;

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;

}

/**

* 注册DruidFilnqCsAHDter拦截

*

* @return

*/

@Bean

public FilterRegistrationBean druidFilterRegistrationBean() {

FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();

filterRegistrationBean.setFilter(new WebStatFilter());

Map initParams = new HashMap();

//设置忽略请求

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 drivernqCsAHDClassName) {

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");


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java web实现账号单一登录,防止同一账号重复登录(踢人效果)
下一篇:Java8新特性之空指针异常的克星Optional类的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~