我使用的是若依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.DruidDataSourceAutoConfiguredatasource:# 指定使用 Druid 数据源type: com.alibaba.druid.pool.DruidDataSourcedynamic:#设置默认的数据源或者数据源组,默认值即为 masterprimary: masterdatasource:# 主库数据源master:url: jdbc:sqlite:sql/aaa.dbdriver-class-name: org.sqlite.JDBC# 从库数据源slave:driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriverurl: jdbc:sqlserver://127.0.0.1:1433;databaseName=test;encrypt=falseusername: sapassword: aaaaadruid:# 初始连接数initialSize: 5# 最小连接池数量minIdle: 10# 最大连接池数量maxActive: 20# 配置获取连接等待超时的时间maxWait: 60000# 配置连接超时时间connectTimeout: 30000# 配置网络超时时间socketTimeout: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis: 300000# 配置一个连接在池中最大生存的时间,单位是毫秒maxEvictableIdleTimeMillis: 900000# 配置检测连接是否有效validationQuery: SELECT 1testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsewebStatFilter:enabled: truestatViewServlet: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();@Datapublic 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 {@Autowiredprivate DruidProperties druidProperties;@Bean@ConditionalOnMissingBeanpublic 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;}
}