springboot2.5.5配置druid数据源1.2.8与jdbc(代码片段)

PacosonSWJTU PacosonSWJTU     2023-01-14     797

关键词:

【README】

本文记录了 springboot配置 druid数据源的步骤;


【1】新建springboot项目并配置druid

步骤1,新建springbt项目

 步骤2,选择spring web,jdbc,mysql驱动依赖;

步骤3,添加 druid数据源依赖, 生成的pom.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.cmc</groupId>
    <artifactId>springbt-06-data-jdbc2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springbt-06-data-jdbc2</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- 引入druid数据源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </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>

</project>

注意,必须添加 log4j 依赖,因为 druid用到了它,不然会报

Failed to bind properties under 'spring.datasource' to javax.sql.DataSource

步骤4,添加druid数据源配置, 启用 druid数据源

application.yml


# 配置springboot数据源
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.163.204:3306/jdbc01
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource  # 启用druid数据源
    #   数据源其他配置
    initialSize: 6
    minIdle: 6
    maxActive: 26
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    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

步骤5,添加测试用例

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

@SpringBootTest
class Springbt06DataJdbc2ApplicationTests 

    @Autowired
    DataSource dataSource;

    @Test
    void contextLoads() throws SQLException 
        System.out.println("数据源=" + dataSource.getClass());
        Connection conn =  dataSource.getConnection();
        System.out.println("我的测试连接=" + conn);
        conn.close();
    

打印结果:

数据源=class com.alibaba.druid.pool.DruidDataSource
2021-10-17 08:18:50.867  INFO 7488 --- [           main] com.alibaba.druid.pool.DruidDataSource   : dataSource-1 inited
我的测试连接=com.mysql.cj.jdbc.ConnectionImpl@54e02f6a


 【2】使用druid并配置druid监控页面

步骤1,添加web访问配置

application.properties

# 服务器配置
server.port=8082
server.servlet.context-path=/springbt-data2

步骤2,添加controller访问路径,查询数据库表

@Controller
public class HelloController 
    @Autowired
    JdbcTemplate jdbcTemplate;

    @ResponseBody
    @GetMapping("/query")
    public Map<String, Object> map() 
        List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from department");
        return list.get(0);
    

步骤3,添加druid数据源


// 导入druid数据源
@Configuration
public class DruidConfig 

    @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> params = new HashMap<>();
        params.put("loginUsername", "admin");
        params.put("loginPassword", "admin");
        params.put("allow", "localhost"); // 默认允许所有访问
        params.put("deny", "192.168.163.204"); // 默认允许所有访问
        bean.setInitParameters(params);
        return bean;
    

    // 2 配置一个监控的filter
    @Bean
    public FilterRegistrationBean webStatFilter() 
        FilterRegistrationBean bean = new FilterRegistrationBean<>();
        bean.setFilter(new WebStatFilter());
        // 配置相关参数
        Map<String, String> params = new HashMap<>();
        params.put("exclusions", "*.js,*.css,/druid/*");
        bean.setInitParameters(params);
        bean.setUrlPatterns(Arrays.asList("/*"));
        return bean;
    

步骤4,先执行query 请求;

http://localhost:8082/springbt-data2/query

步骤5,查看druid sql监控页面

http://localhost:8082/springbt-data2/druid/login.html

 

步骤6,查看sql监控; 

补充: springboot配置druid及测试案例的目录结构 

springboot2.5.5发布,2.6.0也要来了!(代码片段)

距离SpringBoot2.5.4发布一个月不到,SpringBoot2.5.5又来了!本次更新同步发布的版本还有SpringBoot2.4.11:这两个版本分别修复了41、32个bug,以及文档优化、依赖升级。又是两个bug优化版本,没什么好说的了,通... 查看详情

springboot2.5.5正式版发布,matecloud同步完成版本升级

一、发布说明9月23日官方发布了SpringBoot2.5.5版本,此版本包括41个错误修复、文档改进和依赖项升级。二、更新内容2.1bug修复修复执行器端点默认情况下不会清理SPRING_APPLICATION_JSON#28081使用Flyway和SpringIntegration的DataSource初始化... 查看详情

springboot2.5.5正式版发布,matecloud同步完成版本升级

一、发布说明9月23日官方发布了SpringBoot2.5.5版本,此版本包括41个错误修复、文档改进和依赖项升级。二、更新内容2.1bug修复修复执行器端点默认情况下不会清理SPRING_APPLICATION_JSON#28081使用Flyway和SpringIntegration的DataSource初始化... 查看详情

springboot2.5.5正式版发布,matecloud同步完成版本升级

一、发布说明9月23日官方发布了SpringBoot2.5.5版本,此版本包括41个错误修复、文档改进和依赖项升级。二、更新内容2.1bug修复修复执行器端点默认情况下不会清理SPRING_APPLICATION_JSON#28081使用Flyway和SpringIntegration的DataSource初始化... 查看详情

springboot2.5.5正式版发布,matecloud同步完成版本升级

一、发布说明9月23日官方发布了SpringBoot2.5.5版本,此版本包括41个错误修复、文档改进和依赖项升级。二、更新内容2.1bug修复修复执行器端点默认情况下不会清理SPRING_APPLICATION_JSON#28081使用Flyway和SpringIntegration的DataSource初始化... 查看详情

springboot配置druid数据源

SpringBoot配置Druid数据源Druid是阿里巴巴的一个开源项目,使用这个数据源的好处就是可以使用监控功能,提供了一个简单的后台,可以监控数据源的数据配置方式导入坐标<!--https://mvnrepository.com/artifact/com.alibaba/druid--><depende... 查看详情

基于springboot2.5.5自建启动器starter制品库(代码片段)

【README】本文po出了自建springboot启动器步骤;【1】新建2个starter相关组件根据 mybatis-spring-boot-starter,我们看到自建starter需要两个组件,分别是xxx-spring-boot-starter,xxx-spring-boot-starter-autoconfigure; 查看详情

druid数据源配置

<beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close"><propertyname="url"value="${jdbc_url}"/><propertyname="username"value="${jdbc_ 查看详情

springboot系列之集成druid配置数据源监控

SpringBoot系列之集成Druid配置数据源监控继上一篇博客SpringBoot系列之JDBC数据访问之后,本博客再介绍数据库连接池框架Druid的使用实验环境准备:MavenIntelliJIDEA先新建一个SpringbootInitializer项目,详情参考SpringBoot系列之快速创建Initi... 查看详情

springboot配置druid数据源

...种XxxTemplate和XxxRepository来简化我们队数据访问层的操作。springboot2.0默认是用com.zaxxer.h 查看详情

springboot配置druid多数据源(mysqlpostgresqloracle)

datasource:druid:stat-view-servlet:enabled:true#loginUsername:#loginUsername:admin#loginPassword:#loginPassword:adminallow:web-stat-filter:enabled:truedynamic:#全局druid参数,绝大部分值和默认保持一致。druid:#连接池 查看详情

springboot集成druid

...可以监控数据库访问性能,可以获得SQL执行日志 2、配置  加入druid相关配置(.yml配置文件)spring:#数据库配置datas 查看详情

druid连接池配置多数据源

参考技术ADruid连接池+spring-data-jpa实现多数据源配置1、创建maven工程,引入需要的jar包 查看详情

springboot+mybatis+druid配置多数据源(mysql+postgre)

springboot+mybatis+Druid配置多数据源(mysql+postgre)引入pom依赖设置application多数据源config配置db1config配置(主数据库配置)db2config配置(其他数据库)事务处理mapper层springboot+mybatis+Druid配置多数据源(mysql+postgre)参考资料:第八章springboot+mybatis+... 查看详情

druid数据库连接池配置

Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQLParser。Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQLServer、H2等等。 Druid针对Orac... 查看详情

springboot入门之基于druid配置mybatis多数据源

...控和慢sql处理,这篇了解下使用基于基于Druid配置Mybatis多数据源。SpringBoot默认配置数据库连接信息时只需设置url等属性信息就可以了,SpringBoot就会基于约定根据配置信息实例化对象,但是一般大型的项目都是有多个子系统或者... 查看详情

druid数据源sql数据库与spring监控

Druid监控概要说明为什么要监控? Druid是什么?德鲁伊    URL监控配置说明  配置步骤 步骤配置第一步web.xml配置WebStatFilter第二步WebStatFilter配置拦截参数,Cookie或Session中的用户名第三步访问Servlet/druid... 查看详情

druid使用及配置

druid数据源配置    <beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close"><propertyname="url"value="${ds1.url}"/><propertyname="username"v 查看详情