SpringBoot整合Druid数据源详细文档

1.数据库结构

2.项目结构

3.pom.xml文件

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>

		<!--引入druid数据源 -->
		<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.8</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/log4j/log4j -->
		<!-- 如果 不加入这依赖       配置监控统计拦截的filters时   这个会报错 filters: stat,wall,log4j    -->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build> 

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.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<String,String> 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<String,String> 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<String,Object> map(){
        List<Map<String, Object>> 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<String,String> 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

原文地址:https://www.cnblogs.com/Amywangqing/p/11964707.html

时间: 2024-11-05 21:49:47

SpringBoot整合Druid数据源详细文档的相关文章

Springboot整合Druid数据源

Druid是阿里巴巴的一个开源的JDBC组件,该组件由数据库连接池.插件框架和SQL解析器组成,主要功能如下: 1.DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系. 2.DruidDataSource 高效可管理的数据库连接池. 3.SQLParser解析器兼容所有的JDBC数据库,如:Mysql,Oracle.SQL Server数据库. 同时它结合了C3P0.DBCP.PROXOOL等DB池的优点,加入了日志监控,在稳定性.可扩展性和性能方便具有

springboot利用swagger构建api文档

一.引入jar pom.xml <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.spr

SpringBoot整合Druid数据连接池

SpringBoot整合Druid数据连接池 Druid是什么? Druid是Alibaba开源的的数据库连接池.Druid能够提供强大的监控和扩展功能. 在哪里下载druid maven中央仓库: http://central.maven.org/maven2/com/alibaba/druid/ 怎么获取Druid的源码 Druid是一个开源项目,源码托管在github上,源代码仓库地址是 https://github.com/alibaba/druid.同时每次Druid发布正式版本和快照

Springboot整合druid

概述 前面的Springboot整合jdbcTemplate.mybatis.jpa三篇文章中使用的数据库连接池都是Spingboot默认配置的tomcat.jdbc.pool.配置原理进入org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration类查看,根据通过spring.datasource.type配置其他连接池,当然我们也可以配置指定的数据库连接池比如Druid.配置Druid有两种方式 第一种 配置传统的Dr

SpringBoot使用Swagger2构建API文档

1.Swagger2介绍 Swagger2这套自动化文档工具来生成文档,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档. 2.SpringBoot开启Swagger2支持 1.导入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <versio

CentOS 6.5 十分钟搭建KVM虚拟机详细文档,从零到有,快速入门。

以下技术文档全部在我的公司服务器上成功搭建并且运行 KVM通俗的说就是一台服务器当多台用,详细介绍去百度和谷歌. 首先查看服务器是否支持虚拟化 [[email protected] ~]# grep -E '(vmx|svm)' /proc/cpuinfo --color 反馈如下:   flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov p    at pse36 clflush dts acpi mmx 

SpringBoot配置Druid数据源

在我刚开始接触JDBC的时候,用的是DriveManager驱动来连接数据库的.而现在大多是用DataSource. 这里先简单说一下区别: 1.datasource是与连接池获取连接,而DriverManager是获取与数据库的连接!DriverManager类的主要作用是管理注册到DriverManager中的JDBC驱动程序,并根据需要使用JDBC驱动程序建立与数据服务器的网络连接.但是建立与数据库的连接是一项较耗资源的工作,频繁的进行数据库连接建立操作会产生较大的系统开销,为了解决上述问

磁盘管理、进程管理、文件系统、软硬链接详细文档

项目技术操作文档项目名称:存储管理.进程管理 项目需求:1.在企业服务器上安装新硬盘,对磁盘进行分区.格式化.挂载处理2.根据企业服务器数据业务的不同,采用不同的raid技术来保证数据的读写速度.数据安全3.在企业的存储服务器上采用LVM逻辑卷技术来实现容量的动态调整4.在服务器的运维工作中随机对系统进程进行分析和管理 项目测试: 原理概述:存储管理是系统中必不可少的技术,Linux系统中支持多种存储管理技术.在企业服务器中需要根据业务的不同来分别使用分区.raid.LVM逻辑卷等技术. 测试环

ORACLE 10.2.01升级10.2.05 for windows 详细文档

最近要做一个数据库的升级工作,提前在自己的PC机上练习了一下,这种文档在网上很多,但是大多都是使用命令编辑脚本,其实数据库还有一个DBUA的升级工具可以使用,使升级工作方便了很多. OS环境:windows XP 32位 PC 数据库版本:10.20.01 升级版本:10.20.05 操作步骤:1.备份数据库软件和数据库,因为迁移一旦失败,可以迅速恢复. 2.使用metalink下载升级包 3.关闭数据库所有的后台服务,在管理工具内停止. 4.升级数据库软件 5.升级数据库 //metalink