springboot集成druid数据源

赖伟春      2022-05-08     406

关键词:

   介绍两种方式集成,一般都是使用application.prperties文件来配置。 

  1,使用springboot配置文件(application.properties)集成。

  2,使用配置类集成。

      SpringBoot提倡基于java的配置,尽管你可以使用XML源调用SpringApplication.run(),不过还是建议你使用@Configuration类作为主要配置源。(但我们还是用XML源较多)

      从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或                           AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

 

    一,导入所需依赖。

 1         <!--web场景支持-->
 2         <dependency>
 3             <groupId>org.springframework.boot</groupId>
 4             <artifactId>spring-boot-starter-web</artifactId>
 5         </dependency>
 6 
 7         <!--mybatis场景支持-->
 8         <dependency>
 9             <groupId>org.mybatis.spring.boot</groupId>
10             <artifactId>mybatis-spring-boot-starter</artifactId>
11             <version>2.1.2</version>
12         </dependency>
13         <dependency>
14             <groupId>mysql</groupId>
15             <artifactId>mysql-connector-java</artifactId>
16             <scope>runtime</scope>
17         </dependency>
18 
19         <dependency>
20             <groupId>org.springframework.boot</groupId>
21             <artifactId>spring-boot-starter-test</artifactId>
22             <scope>test</scope>
23             <exclusions>
24                 <exclusion>
25                     <groupId>org.junit.vintage</groupId>
26                     <artifactId>junit-vintage-engine</artifactId>
27                 </exclusion>
28             </exclusions>
29         </dependency>
30         <!--druid数据源-->
31         <dependency>
32             <groupId>com.alibaba</groupId>
33             <artifactId>druid-spring-boot-starter</artifactId>
34             <version>1.1.17</version>
35        </dependency>

    

    二,编写application.prperties配置文件;第一种方式。

#数据源 配置
#指定数据源类型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#数据库驱动
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
#远程连接url
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&charaterEncoding=utf-8&useSSL=false
#数据库用户名
spring.datasource.username=root
#数据库密码
spring.datasource.password=123456

# myBatis 配置
# 配置扫描实体类
mybatis.type-aliases-package=com.example.springboot5.entity.Emp
# 配置扫描映射文件(如果和接口在同一文件不需要配置)
#mybatis.mapper-locations=com.example.springboot5.mapper/*.xml



#是否启用StatFilter默认值false
spring.datasource.druid.web-stat-filter.enabled=true
#是否启用StatViewServlet(监控页面)默认值为false(考虑到安全问题默认并未启动,如需启用建议设置密码或白名单以保障安全)
spring.datasource.druid.stat-view-servlet.enabled=true
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.druid.filters=stat,wall,slf4j


# 配置监控url
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
#配置监控链接
spring.datasource.druid.web-stat-filter.url-pattern=/*
# 配置忽略过滤形式
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
# 配置druid 登录名 和 密码
spring.datasource.druid.stat-view-servlet.login-username=root
spring.datasource.druid.stat-view-servlet.login-password=123456


#初始化时建立物理连接的个数
spring.datasource.druid.initial-size=5
#最小连接池数量
spring.datasource.druid.min-idle=5
#最大连接池数量
spring.datasource.druid.max-active=20
#获取连接时最大等待时间,单位毫秒
spring.datasource.druid.max-wait=60000
#用来检测连接是否有效的sql 必须是一个查询语句
#mysql中为 select 'x'
#oracle中为 select 1 from dual
spring.datasource.druid.validation-query=select 'x'

    三,@Configuration类方式配置。

          常见注解:

            @Configuration 配置类注解

            @Bean 注入bean到Spring容器中

            @Primary 当同一类型的bean出现时,默认优先选择

            @Value 将外部的值注入bean中

            @Resource 按照名称装载bean

            @Autowired 按照类型装载bean

            @Primary 优先使用该bean

package com.example.springboot5.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;

@Configuration
public class DruidConfig {

    @Bean
    @Primary
    public DataSource dataSource(){
         //指定使用数据源
        DruidDataSource dataSource = new DruidDataSource();
        //数据库连接信息
        dataSource.setUrl("jdbc:mysql://localhost:3306/test");
        //数据库用户名和密码
        dataSource.setName("root");
        dataSource.setPassword("123456");
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        try{
            //配置默认拦截
            dataSource.setFilters("stat,wall,slf4j");
        }catch (Exception e){ }

        return dataSource;
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean(){
        //创建过滤器
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new WebStatFilter());
        filterRegistrationBean.setEnabled(true);
        Map<String,Object> intiParams = new HashMap<>();
        //忽略过滤的文件
        intiParams.put("exclusions","*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*");
        filterRegistrationBean.setInitParameters(intiParams);
        //设置过滤路径
        filterRegistrationBean.addUrlPatterns("/*");
        return filterRegistrationBean;
    }



}

    

    四,Controller编写,用于测试。

 1 package com.example.springboot5.web;
 2 
 3 import com.example.springboot5.entity.Emp;
 4 import com.example.springboot5.service.EmpService;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.web.bind.annotation.RequestMapping;
 7 import org.springframework.web.bind.annotation.ResponseBody;
 8 import org.springframework.web.bind.annotation.RestController;
 9 
10 import java.util.HashMap;
11 import java.util.List;
12 import java.util.Map;
13 
14 //官方推荐注解
15 @RestController
16 public class WebController {
17 
18     @Autowired
19     private EmpService empService;
20 
21     @RequestMapping("/emplist")
22     @ResponseBody
23     private Map<String,Object> empList(){
24         Map<String,Object> model = new HashMap<>();
25         //大家可以使用静态数据
26         List<Emp> emps =  empService.findEmpList();
27         model.put("emps",emps);
28         model.put("success",true);
29         return model;
30     }
31 
32 
33 }

    

    五,测试 

    

 

     六,查看数据库记录(druid自带的数据监控)

         访问地址:localhost:8080/druid 访问druid数据监控

            

      登录成功后,会进入index.html。

      

 

       该里面就会有所有查询语句的记录。

      最后贴上项目结构 

      

 

 

    

 

springboot集成druid

1、druid简介Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBossDataSource。Druid充当数据库连接池,可以监控数据库访问性能,... 查看详情

springboot--集成druid连接池

Druid是什么?Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。优点: 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库... 查看详情

springboot集成druid数据库连接池

参考技术A1.pom.xml2.yml文件配置3.访问启动项目,访问druid管理页面-localhost:8080/druid/login.html,登录的用户名和密码,我在yml配置成test,所以用test登录就行,登录后页面如下: 查看详情

springboot系列七:springboot集成mybatis事物配置及使用druid数据源druid监控使用

一、MyBatis和druid简介  MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接... 查看详情

springboot随笔-springboot集成druid

1.Druid是什么   Druid是Java语言中最好的数据库连接池之一,Druid能够提供强大的监控和扩展功能。2.Druid连接池的优点:强大的监控特性,通过Druid提供的监控功能,可以清楚知道连接池和SQL的工作情况。方便扩展。Druid... 查看详情

springboot:集成druid数据源(代码片段)

...ava应用程序开发中,常用的连接池有DBCP、C3P0、Proxool等。SpringBoot默认提供了若干种可用的连接池,默认的数据源是: 查看详情

springboot集成druid

...生的DB连接池(据说是目前最好的连接池)。今天主要讲在SpringBoot2.0中集成Druid。在springboot2.0中,几乎不用修改任何代码,只需要引入pom.xml,更新a 查看详情

springboot学习笔记--[springboot集成阿里druid数据源,整合mybatis搭建一个案例试试](代码片段)

文章目录1.springboot整合阿里数据源2.springboot整合Mybatis3.试试案例测试1.springboot整合阿里数据源首先在pom.xml文件中导入依赖坐标<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</versio... 查看详情

springboot集成druid批量插入数据和效率监控配置(代码片段)

...;多线程甚至生产者消费者模式后续补充。测试环境:SpringBoot2.5Mysql8JDK8Druid搭建测试环境Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能。业界把Druid和HikariCP做对比后,虽说HikariCP的性能比D... 查看详情

配置druid数据源及密码加密-springboot2.7(代码片段)

在SpringBoot中配置Druid数据源及密码加密的方法集成MyBatisPlus,实现了一组增删改查接口。在启动服务时,从控制台中可以看出SpringBoot默认使用Hikari作为数据库连接池,Hikari性能很优秀。在国内使用较多的连接池还属阿... 查看详情

springboot集成mybatis(druid数据库连接池以及分页配置)

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,目前很大一部分互联网、软件公司都在使用这套框架关于Mybatis-Generator的下载可以到这个地址:https://github.com/mybatis/generator/releases,下来来之后,我们主... 查看详情

10springboot之集成druid

在pom.xml中添加<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.15</version></dependency><dependency><groupId&g 查看详情

springboot项目集成alibabdruid数据库连接池,提示:com.alibaba.druid.pool.druiddatasource:{datasource-1}close

今天在IDEA编辑器下创建SpringBoot项目并且集成AlibabaDruid数据库连接池,但是项目启动后,会出现如下错误信息:com.alibaba.druid.pool.DruidDataSource:dataSource-1closed错误原因:AlibabaDruid数据库连接无法正常连接MySQL数据库服... 查看详情

springboot使用·上篇(springboot注解+集成jdbc+集成druid(德鲁伊)+sql监控)(代码片段)

文章目录SpringBoot的使用SpringBoot注解@SpringBootApplication@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan@Configuration@Bean@ConfigurationPropertiesSpringBoot集成JDBC 查看详情

springboot2.1.1.release集成druid

SpringBoot2.1.1.RELEASE集成Druid详情:http://www.qchcloud.cn/system/article/show/68配置依赖:mysqlmysql-connector-javacom.alibabadruid1.1.4配置applicaton.propertiesspring.datasource.driverClassName=com.mysql.cj.j 查看详情

springboot(12):集成druid

一、添加依赖<!--mybatis-开始--><dependency>   <groupId>org.mybatis.spring.boot</groupId>   <artifactId>mybatis-spring-boot-starter</artifactId> 查看详情

springboot配置全系列

基础配置maven的profile方式springboot的profile使用方式开发模式配置配置tomcat配置web相关配置日志配置JSP配置数据源集成配置集成druid集成mybatis集成Freemarker集成redis集成dubbo集成zookeeper集成rocketmq 查看详情

springboot使用druid连接池详解(代码片段)

SpringBoot使用Druid连接池详解AlibabaDruid是一个JDBC组件库,包含数据库连接池、SQLParser等组件,被大量业务和技术产品使用或集成,经历过严苛的线上业务场景考验,是值得信赖的技术产品。DruidSpringBootStarter用于帮... 查看详情