SpringBoot整合Druid数据源过程详解

网友投稿 686 2023-07-08

SpringBoot整合Druid数据源过程详解

SpringBoot整合Druid数据源过程详解

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

1.数据库结构

2.项目结构

3.pom.xml文件

org.springframework.boot

spring-boot-starter-jdbc

mysql

mysql-connector-java

runtime

com.alibaba

druid

1.1.8

log4j

log4j

1.2.17

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

EqgycE

org.springframework.boot

spring-boot-maven-plugin

4.application.yml配置文件

spring:

datasource:

username: root

password: wangqing

url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai

driver-class-name: com.mysql.jdbc.Driver

type: com.alibaba.druid.pool.DruidDataSource

# 数据源其他配置

initialSize: 5

minIdle: 5

maxActive: 20

maxWait: 60000

timeBetweenEvictionRunsMillis: 60000

minEvictableIdleTimeMillis: 300000

validationQuery: SELECT 1 FROM DUAL

testWhileIdle: true

testOnBorrow: false

testOnReturn: false

poolPreparedStatements: true

# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙

filters: stat,wall,log4j

maxPoolPreparedStatementPerConnectionSize: 20

useGlobalDataSourceStat: true

connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

# 合并多个DruidDataSource的监控数据

#useGlobalDataSourceStat: true

mybatis:

# 指定全局配置文件位置

#config-location: classpath:mybatis/mybatis-config.xml

# 指定sql映射文件位置

mapper-locations: classpath:mapper/*.xml #如src/main/resources下的mappers文件下的TUserMapper.xml

# schema:

# - classpath:sql/department.sql #根据department.sql 的sql语句创建表

# - classpath:sql/employee.sql

5.创建一个DruidConfig的配置类,实例化Druid Datasource

package com.qingfeng.config;

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.http://DataSource;

import java.util.Arrays;

import java.util.HashMap;

import java.util.Map;

@Configuration

public class DruidConfig {

   //指定加载appliction.yml文件里面的spring.datasource开头的

   // DruidDataSource类里面的属性与appliction.yml文件里面的spring.datasource开头的对应映射

@ConfigurationProperties(prefix = "spring.datasource")

@Bean

public DataSource druid(){

return new DruidDataSource();

}

//配置Druid的监控

//1、配置一个管理后台的Servlet

@Bean

public ServletRegistrationBean statViewServlet(){

ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");

Map initParams = new HashMap<>();

initParams.put("loginUsername","admin");

initParams.put("loginPassword","123456");

initParams.put("allow","");//默认就是允许所有访问

initParams.put("deny","");

bean.setInitParameters(initParams);

return bean;

}

//2、配置一个web监控的filter

@Bean

public FilterRegistrationBean webStatFilter(){

FilterRegistrationBean bean = new FilterRegistrationBean();

bean.setFilter(new WebStatFilter());

Map initParams = new HashMap<>();

initParams.put("exclusions","*.js,*.css,/druid/*");

bean.setInitParameters(initParams);

bean.setUrlPatterns(Arrays.asList("/*"));

return bean;

}

}

6.创建一个UserController类测试

package com.qingfeng.controller;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

import java.util.Map;

@Controller

public class UserController {

@Autowired

JdbcTemplate jdbcTemplate;

@ResponseBody

@GetMapping("/query")

public Map map(){

List> list = jdbcTemplate.queryForList("select * FROM user");

return list.get(0);

}

}

7.运行项目,通过浏览器访问 http://localhost:8080/query

8.我们DruidConfig类里配置的下面代码可以帮我们实现监控

//配置Druid的监控

//1、配置一个管理后台的Servlet

@Bean

public ServletRegistrationBean statViewServlet(){

ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");

Map initParams = new HashMap<>();

initParams.put("loginUsername","admin");

initParams.put("loginPassword","123456");

initParams.put("allow","");//默认就是允许所有访问

initParams.put("deny","");

bean.setInitParameters(initParams);

return bean;

}

9.我们启动项目,打开网址:http://localhost:8080/druid/login.html 可以通过登录,查看druid数据源状态监控

我们上面设置的是用户名:admin 密码:123456

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

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

上一篇:spring boot如何使用AOP统一处理web请求
下一篇:Spring中使用LocalDateTime、LocalDate等参数作为入参
相关文章

 发表评论

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