主要区别在pom.xml和yml配置文件中
1. pom.xml中,主要区别mybatis-plus,dynamic,druid的配置,版本号在2.x和3.x中都一样
2. application文件中,主要区别在redis的配置,以及是否启动时排除Druid
springBoot2.x中redis是spring.redis.xxxx
SpringBoot3.x中redis是spring.data.redis.xxxx
一、Springboot2.x集成Mybaitplus多数据源
<?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.7.18</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.meichao</groupId>
<artifactId>xxxx</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>你项目的名字</name>
<description>xxx模块</description>
<properties>
<java.version>17</java.version>
<hutool.version>5.8.38</hutool.version>
<dynamic.version>4.3.1</dynamic.version>
<druid.version>1.2.27</druid.version>
<mybatis-plus.version>3.5.14</mybatis-plus.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- hutool工具 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- taosdata -->
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>3.6.2</version>
</dependency>
<!-- mybatis-plus springboot2.x -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.14</version>
</dependency>
<!-- 动态数据源 springboot2.x -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic.version}</version>
</dependency>
<!-- 阿里数据库连接池 springboot2.x -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.59</version>
</dependency>
</dependencies>
<!-- 使用阿里云仓库-->
<repositories>
<!-- 阿里云中央仓库镜像 -->
<repository>
<id>aliyun-central</id>
<name>Aliyun Maven Central Repository</name>
<url>https://maven.aliyun.com/repository/central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
server:
port: 8080
spring:
autoconfigure:
exclude:
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
primary: one
# 严格匹配数据源 ,默认false.true未匹配到指定数据源时抛异常 ,false使用默认数据源
strict: true
datasource:
one:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip:3306/databasesName?autoReconnect=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root
tdengine:
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://ip:6041
username: root
password: root
druid:
filters: stat,slf4j
druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
# 连接池的配置信息
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
maxActive: 1000
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
# 允许SELECT语句的WHERE子句是一个永真条件
wall:
selectWhereAlwayTrueCheck: false
# 打开mergeSql功能;慢SQL记录
stat:
merge-sql: true
slow-sql-millis: 5000
#redis 配置
redis:
database: 0
host: ip
port: 6379
timeout: 2000ms # 添加超时配置
lettuce:
pool:
max-active: 20 # 适当减少最大连接数
max-idle: 10
min-idle: 5
max-wait: 2000ms
#mybatis plus 设置
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
type-aliases-package: com.mengtaigroup.domain.po
#configuration:
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 返回类型为Map,显示null对应的字段
#call-setters-on-nulls: true
logging:
level:
com.mengtaigroup.mapper: debug
二、Springboot3集成Mybaitplus多数据源遇到的问题
2.1 问题一
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver class
解决方案:配置文件中或者启动类上排除掉DruidDataSourceAutoConfigure,参考三、Springboot3集成Mybaitplus多数据源中的application文件
2.2 问题二
java.lang.IllegalStateException: The following classes could not be excluded because they are not auto-configuration classes:
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
解决方案:需引入druid-spring-boot-3-starter,参考三、Springboot3集成Mybaitplus多数据源中的pom文件
2.3 问题三
java.lang.NoClassDefFoundError: org/springframework/aot/AotDetector
解决方案:版本不匹配,留意mybatis和springboot的版本,需引入mybatis-plus-spring-boot3-starter,以及Springboot版本为3.x,参考三、Springboot3集成Mybaitplus多数据源中的pom文件
2.4 问题四
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost/127.0.0.1:6379
Caused by: java.net.ConnectException: Connection refused: no further information
解决方案:看application文件中,redis的配置是否正确,SpringBoot3.x中redis是spring.data.redis.xxxx
三、Springboot3.x集成Mybaitplus多数据源
<?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>3.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.meichao</groupId>
<artifactId>xxxx</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>xxxx</name>
<description>xxx模块</description>
<properties>
<java.version>17</java.version>
<hutool.version>5.8.38</hutool.version>
<dynamic.version>4.3.1</dynamic.version>
<druid.version>1.2.27</druid.version>
<mybatis-plus.version>3.5.14</mybatis-plus.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- hutool工具 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- taosdata -->
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>3.6.2</version>
</dependency>
<!-- mybatis-plus springboot3 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- 动态数据源 springboot3-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
<version>${dynamic.version}</version>
</dependency>
<!-- 阿里数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.59</version>
</dependency>
</dependencies>
<!-- 使用阿里云仓库-->
<repositories>
<!-- 阿里云中央仓库镜像 -->
<repository>
<id>aliyun-central</id>
<name>Aliyun Maven Central Repository</name>
<url>https://maven.aliyun.com/repository/central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
server:
port: 8080
spring:
autoconfigure:
exclude:
# 这里不用排除掉,2.x需要排除掉
# - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
dynamic:
primary: one
# 严格匹配数据源 ,默认false.true未匹配到指定数据源时抛异常 ,false使用默认数据源
strict: true
datasource:
one:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip:3306/databasesName?autoReconnect=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root
tdengine:
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://ip:6041
username: root
password: root
druid:
filters: stat,slf4j
druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
# 连接池的配置信息
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
maxActive: 1000
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
# 允许SELECT语句的WHERE子句是一个永真条件
wall:
selectWhereAlwayTrueCheck: false
# 打开mergeSql功能;慢SQL记录
stat:
merge-sql: true
slow-sql-millis: 5000
#redis 配置
data:
redis:
database: 4
host: 172.16.83.230
port: 6379
timeout: 2000ms # 添加超时配置
lettuce:
pool:
max-active: 20 # 适当减少最大连接数
max-idle: 10
min-idle: 5
max-wait: 2000ms
#mybatis plus 设置
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
type-aliases-package: com.mengtaigroup.domain.po
#configuration:
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 返回类型为Map,显示null对应的字段
#call-setters-on-nulls: true
logging:
level:
com.mengtaigroup.mapper: debug

被折叠的 条评论
为什么被折叠?



