若依ruoyi 动态多数据源配置(多种不同类型的数据库mysql,oracle,sqlite3,sqlserver等等)
【代码】若依ruoyi 动态多数据源配置(多种不同类型的数据库mysql,oracle,sqlite3,sqlserver等等)
我使用的是mybaits-plus,具体根据自己的情况做更改
增加其他数据库的配置 ,我这里是sqlite3与sqlserver
<dependency>
<groupid>org.xerial</groupid>
<artifactid>sqlite-jdbc</artifactid>
<version>3.36.0.3</version>
</dependency>
<dependency>
<groupid>com.microsoft.sqlserver</groupid>
<artifactid>mssql-jdbc</artifactid>
<version>10.2.3.jre8</version>
</dependency>
<dependency>
<groupid>com.baomidou</groupid>
<artifactid>mybatis-plus-boot-starter</artifactid>
<version>3.5.1</version>
</dependency>
<!-- 动态数据源 -->
<dependency>
<groupid>com.baomidou</groupid>
<artifactid>dynamic-datasource-spring-boot-starter</artifactid>
<version>3.5.2</version>
</dependency>
<!-- 阿里数据库连接池 -->
<dependency>
<groupid>com.alibaba</groupid>
<artifactid>druid-spring-boot-starter</artifactid>
<version>1.2.16</version>
</dependency>
在ruoyi-admin的application-druid.yml的配置
# 数据源配置
spring:
autoconfigure:
# 排除 druid 自动配置
exclude: com.alibaba.druid.spring.boot.autoconfigure.druiddatasourceautoconfigure
datasource:
# 指定使用 druid 数据源
type: com.alibaba.druid.pool.druiddatasource
dynamic:
#设置默认的数据源或者数据源组,默认值即为 master
primary: master
datasource:
# 主库数据源
master:
url: jdbc:sqlite:sql/aaa.db
driver-class-name: org.sqlite.jdbc
# 从库数据源
slave:
driverclassname: com.microsoft.sqlserver.jdbc.sqlserverdriver
url: jdbc:sqlserver://127.0.0.1:1433;databasename=test;encrypt=false
username: sa
password: aaaaa
druid:
# 初始连接数
initialsize: 5
# 最小连接池数量
minidle: 10
# 最大连接池数量
maxactive: 20
# 配置获取连接等待超时的时间
maxwait: 60000
# 配置连接超时时间
connecttimeout: 30000
# 配置网络超时时间
sockettimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timebetweenevictionrunsmillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minevictableidletimemillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxevictableidletimemillis: 900000
# 配置检测连接是否有效
validationquery: select 1
testwhileidle: true
testonborrow: false
testonreturn: false
webstatfilter:
enabled: true
statviewservlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid
在ruoyi-framework的中修改druidproperties类与druidconfig类
package com.ruoyi.framework.config.properties;
import lombok.data;
import org.springframework.boot.context.properties.configurationproperties;
import org.springframework.context.annotation.configuration;
@data
@configuration
@configurationproperties(prefix = "spring.datasource.dynamic.druid")
public class druidproperties {
private int initialsize;
private int minidle;
private int maxactive;
private int maxwait;
private int connecttimeout;
private int sockettimeout;
private int timebetweenevictionrunsmillis;
private int minevictableidletimemillis;
private int maxevictableidletimemillis;
private string validationquery;
private boolean testwhileidle;
private boolean testonborrow;
private boolean testonreturn;
private statviewservlet statviewservlet = new statviewservlet();
@data
public static class statviewservlet {
private string urlpattern;
private string loginusername;
private string loginpassword;
}
}
package com.ruoyi.framework.config;
import com.alibaba.druid.support.http.statviewservlet;
import com.ruoyi.framework.config.properties.druidproperties;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.boot.autoconfigure.condition.conditionalonmissingbean;
import org.springframework.boot.web.servlet.servletregistrationbean;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import javax.servlet.*;
@configuration
public class druidconfig {
@autowired
private druidproperties druidproperties;
@bean
@conditionalonmissingbean
public servletregistrationbean<servlet> druidstartviewservlet() {
druidproperties.statviewservlet statviewservlet = druidproperties.getstatviewservlet();
servletregistrationbean<servlet> servletregistrationbean = new servletregistrationbean<>(new statviewservlet(), statviewservlet.geturlpattern());
servletregistrationbean.addinitparameter("loginusername", statviewservlet.getloginusername());
servletregistrationbean.addinitparameter("loginpassword", statviewservlet.getloginpassword());
servletregistrationbean.addinitparameter("resetenable", "true");
return servletregistrationbean;
}
}
相关文章:
-
-
使用OpenWRT配置SFTP远程文件传输,安全高效的文件传输方法…
-
Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身Linux。MariaDB是MySQL关系数据库管理系…
-
-
简介:存放系统和用户级别的应用程序和文件。这个文件系统很大,因为通常程序都安装在这里。子文件夹/usr/bin: 存放系统命令和一些基本的应用程序,如ls、cp 等。/usr/lo…
-
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论