iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot怎么使用druid配置多数据源
  • 227
分享到

SpringBoot怎么使用druid配置多数据源

2023-07-05 11:07:22 227人浏览 泡泡鱼
摘要

这篇“SpringBoot怎么使用druid配置多数据源”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springBoot怎

这篇“SpringBoot怎么使用druid配置多数据源”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springBoot怎么使用druid配置多数据源”文章吧。

一、背景

使用Spring Boot配置多数据源,数据源分别为postgresqlmysql

二、版本介绍

  • spring boot——2.5.4

  • druid——1.2.11

  • postgresql——12

  • Mysql——8.0.16

  • Maven——3.0

  • idea——2019

三、项目结构

java package目录

SpringBoot怎么使用druid配置多数据源

resource目录存放mapper.xml文件,按照数据源创建package 

 SpringBoot怎么使用druid配置多数据源

四、maven依赖 

        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-jpa</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-WEB</artifactId>        </dependency>        <!-- https://mvnrepository.com/artifact/com.alibaba/fastJSON -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastjson</artifactId>            <version>2.0.4</version>        </dependency>        <!-- Https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid-spring-boot-starter</artifactId>            <version>1.2.11</version>        </dependency>        <dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>1.3.2</version>        </dependency>        <dependency>            <groupId>org.postgresql</groupId>            <artifactId>postgresql</artifactId>            <scope>runtime</scope>        </dependency>        <!-- mysql驱动 -->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>

五、yaml配置文件

server:  port: 8081spring:  datasource:    type: com.alibaba.druid.pool.DruidDataSource    druid:      web-stat-filter:        enabled: true #是否启用StatFilter默认值true        url-pattern: /*        exclusions: /druid/*,*.js,*.gif,*.jpg,*.bmp,*.png,*.CSS,*.ico        session-stat-enable: true        session-stat-max-count: 10      stat-view-servlet:        enabled: true #是否启用StatViewServlet默认值true        url-pattern: /druid/*        reset-enable: true        login-username: admin        login-passWord: admin        allow:       db1:        username: postgres        password: localhost        url: jdbc:postgresql://localhost:5432/test        driver-class-name: org.postgresql.Driver        initial-size: 5  # 初始化大小        min-idle: 5  # 最小        max-active: 100  # 最大        max-wait: 60000  # 配置获取连接等待超时的时间        validation-query: select version()        time-between-eviction-runs-millis: 60000  # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒        min-evictable-idle-time-millis: 300000  # 指定一个空闲连接最少空闲多久后可被清除,单位是毫秒        filters: config,wall,stat  # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙        # 通过connectProperties属性来打开mergeSql功能;慢SQL记录        connectionProperties: druid.stat.slowSqlMillis=200;druid.stat.logSlowSql=true;config.decrypt=false        test-while-idle: true        test-on-borrow: true        test-on-return: false        # 是否缓存preparedStatement,也就是PSCache  官方建议MySQL下建议关闭   个人建议如果想用SQL防火墙 建议打开        pool-prepared-statements: true        max-pool-prepared-statement-per-connection-size: 20       db2:        username: root        password: localhost        url: jdbc:mysql://localhost:3306/springboot?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai        driver-class-name: com.mysql.cj.jdbc.Driver        initial-size: 5  # 初始化大小        min-idle: 5  # 最小        max-active: 100  # 最大        max-wait: 60000  # 配置获取连接等待超时的时间        validation-query: select 'x'        time-between-eviction-runs-millis: 60000  # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒        min-evictable-idle-time-millis: 300000  # 指定一个空闲连接最少空闲多久后可被清除,单位是毫秒        filters: config,wall,stat  # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙        # 通过connectProperties属性来打开mergeSql功能;慢SQL记录        connectionProperties: druid.stat.slowSqlMillis=200;druid.stat.logSlowSql=true;config.decrypt=false        test-while-idle: true        test-on-borrow: true        test-on-return: false        # 是否缓存preparedStatement,也就是PSCache  官方建议MySQL下建议关闭   个人建议如果想用SQL防火墙 建议打开        pool-prepared-statements: true        max-pool-prepared-statement-per-connection-size: 20 mybatis:  mapper-locations: classpath:com/demo/mapper/*.xml  type-aliases-package: com.demo.entity  configuration:    log-impl:    mapUnderscoreToCamelCase: true #showSqllogging:  level:    java.sql: debug    org.apache.ibatis: debug    com.demo.mapper: debug  config: classpath:logback-spring.xml

六、数据源配置文件

@Configuration@MapperScan(basePackages = "com.demo.mapper.postgre.**", sqlSessionFactoryRef = "oneSqlSessionFactory")public class DataSourceConfig1 {    // 将这个对象放入Spring容器中    @Bean(name = "oneDataSource")    // 表示这个数据源是默认数据源    @Primary    // 读取application.properties中的配置参数映射成为一个对象    // prefix表示参数的前缀    @ConfigurationProperties(prefix = "spring.datasource.druid.db1")    public DataSource getDateSource1() {        return DataSourceBuilder.create().type(DruidDataSource.class).build();    }     @Bean(name = "oneSqlSessionFactory")    // 表示这个数据源是默认数据源    @Primary    // @Qualifier表示查找Spring容器中名字为oneDataSource的对象    public SqlSessionFactory oneSqlSessionFactory(@Qualifier("oneDataSource") DataSource datasource)            throws Exception {        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();        bean.setDataSource(datasource);        bean.setMapperLocations(                // 设置mybatis的xml所在位置                new PathMatchingResourcePatternResolver().getResources("classpath*:com.demo.mapper.postgre/*.xml"));        return bean.getObject();    }     @Bean("oneSqlSessionTemplate")    // 表示这个数据源是默认数据源    @Primary    public SqlSessionTemplate oneSqlSessionTemplate(            @Qualifier("oneSqlSessionFactory") SqlSessionFactory sessionFactory) {        return new SqlSessionTemplate(sessionFactory);    } }
@Configuration@MapperScan(basePackages = "com.demo.mapper.mysql", sqlSessionFactoryRef = "twoSqlSessionFactory")public class DataSourceConfig2 {    // 将这个对象放入Spring容器中    @Bean(name = "twoDataSource")    // 读取application.properties中的配置参数映射成为一个对象    // prefix表示参数的前缀    @ConfigurationProperties(prefix = "spring.datasource.druid.db2")    public DataSource getDateSource1() {        return DataSourceBuilder.create().type(DruidDataSource.class).build();    }     @Bean(name = "twoSqlSessionFactory")    // 表示这个数据源是默认数据源    //@Primary    // @Qualifier表示查找Spring容器中名字为oneDataSource的对象    public SqlSessionFactory oneSqlSessionFactory(@Qualifier("twoDataSource") DataSource datasource)            throws Exception {        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();        bean.setDataSource(datasource);        bean.setMapperLocations(                // 设置mybatis的xml所在位置                new PathMatchingResourcePatternResolver().getResources("classpath*:com.demo.mapper.mysql/*.xml"));        return bean.getObject();    }     @Bean("twoSqlSessionTemplate")    // 表示这个数据源是默认数据源    //@Primary    public SqlSessionTemplate oneSqlSessionTemplate(            @Qualifier("twoSqlSessionFactory") SqlSessionFactory sessionFactory) {        return new SqlSessionTemplate(sessionFactory);    } }

七、启动类配置

关键点:去除  exclude = {DataSourceAutoConfiguration.class} 及扫描 com.demo.mapper目录

@MapperScan("com.demo.mapper")@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})public class DemoApplication {     public static void main(String[] args) {        SpringApplication.run(DemoApplication .class, args);    }}

八、druid管理页面

输入地址 localhost://8081/druid,输入 admin/admin     

以上就是关于“SpringBoot怎么使用druid配置多数据源”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: SpringBoot怎么使用druid配置多数据源

本文链接: https://www.lsjlt.com/news/351363.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot怎么使用druid配置多数据源
    这篇“SpringBoot怎么使用druid配置多数据源”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎...
    99+
    2023-07-05
  • SpringBoot使用druid配置多数据源问题
    目录一、背景二、版本介绍三、项目结构四、maven依赖 五、yaml配置文件六、数据源配置文件七、启动类配置八、druid管理页面总结一、背景 使用spring boot配...
    99+
    2023-03-11
    SpringBoot配置多数据源 druid配置多数据源 druid多数据源
  • springboot 中怎么配置DRUID数据源
    本篇文章为大家展示了springboot 中怎么配置DRUID数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.修改pom.xml<dependency>  &...
    99+
    2023-06-02
  • springboot mybatis druid配置多数据源教程
    目录1、项目代码结构2、导入基本依赖3、配置多数据源4、配置类5、启动类6、测试使用的表7、测试表对应的实体类8、持久层:dao层接口1、项目代码结构 2、导入基本依赖 记得需要导...
    99+
    2024-04-02
  • springboot整合druid及多数据源配置
    前言 本篇主要分两部分 ①springboot整合druid的代码配置,以及druid的监控页面演示;②对实际场景中多数据源的配置使用进行讲解。 一、springboot整合druid的演示demo 可以用idea快速生成一个可运行的dem...
    99+
    2023-10-24
    spring boot java spring
  • 怎么使用SpringBoot配置多数据源
    这篇文章主要介绍了怎么使用SpringBoot配置多数据源的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用SpringBoot配置多数据源文章都会有所收获,下面我们一起来看看吧。1. 引入jar包pom....
    99+
    2023-06-29
  • springboot配置druid多数据源的示例代码
    目录1、配置多数据源所需要的jar2、配置多数据源所需要的工具类3、DataSourceType 枚举类4、DruidProperties druid 配置属性5、DruidConf...
    99+
    2024-04-02
  • SpringBoot中怎么使用Druid数据源
    SpringBoot中怎么使用Druid数据源,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数据访问之Druid数据源的使用说明:该数据源Druid,使用自定义方式实现,后...
    99+
    2023-06-20
  • 使用springboot+druid双数据源动态配置操作
    目录一、yml配置二、动态切换数据源配置文件1.数据源db12.数据源db2三、多数据源的mapper包最好是分开四、代码中调用总结进行动态切换,需要在类里面配置,顺便解决mybat...
    99+
    2024-04-02
  • springboot怎么配置多数据源
    在Spring Boot中配置多个数据源可以通过以下步骤来实现: 在pom.xml文件中添加Spring Boot对多数据源的支...
    99+
    2023-10-23
    springboot
  • springboot配置多数据源并集成Druid和mybatis的操作
    可以是mysql,oracle等多种不同数据源 项目结构 注意:只有@Primary的数据源所控制的mapper文件加注解@Mapper,否则mybatis无法切换扫描;即本文中...
    99+
    2024-04-02
  • 教你使用springboot配置多数据源
    目录一、建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db11.3 在数据库db2中创建表db2二、创建springboot项目2.1 pom.xml导...
    99+
    2024-04-02
  • springboot多数据源配置
    简介 开发当中经常会遇到需要进行多库多表数据整合的需求,在无法拆分项目的情况下,就需要在一个项目中配置多数据源,实现多库数据的整合。本文是在springboot框架的基础上进行的多数据源配置,可参考,也欢迎指正 1、第一步:applicat...
    99+
    2023-08-24
    spring boot mybatis java database
  • SpringBoot怎么整合Druid数据源
    本篇内容主要讲解“SpringBoot怎么整合Druid数据源”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么整合Druid数据源”吧! SprintBoot 默...
    99+
    2023-07-02
  • Druid数据源推荐配置
    Druid数据源推荐配置: 以下Druid数据源配置是本人整理的生产配置。 大家可以直接拷贝使用,注释非常完善。 spring: datasource: druid: url: ...
    99+
    2023-09-18
    mysql 数据库 java
  • 怎么在SpringBoot中配置多数据源
    本篇文章为大家展示了怎么在SpringBoot中配置多数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。多数据源配置首先是配置文件这里采用yml配置文件,其他类型配置文件同理我配置了两个数据源,一...
    99+
    2023-06-14
  • springboot中如何利用mybatis+druid配置动态数据源
    这篇“springboot中如何利用mybatis+druid配置动态数据源”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“s...
    99+
    2023-06-08
  • JAVA:Springboot动态装配Druid多数据源
    1、简介 最近打算搭建一个鉴权中心服务,采用springboot+FastMybatis装配Druid,考虑后续拓展采用Druid多数据源配置,以一个数据源为主,多个动态数据源为辅的结构。除了数据库,...
    99+
    2023-09-29
    spring boot java druid
  • springboot redis如何使用lettuce配置多数据源
    这篇文章将为大家详细讲解有关springboot redis如何使用lettuce配置多数据源,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。springboot是什么springboot一种全新的编程规范...
    99+
    2023-06-14
  • springboot如何配置多数据源
    在Spring Boot中配置多数据源可以通过创建多个DataSource bean,并使用@Primary和@Qualifier注...
    99+
    2024-04-08
    springboot
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作