From f16550ddee82be9fa4f42328083bd9c2b93e0114 Mon Sep 17 00:00:00 2001
From: Bunny <1319900154@qq.com>
Date: Sun, 28 Jul 2024 23:12:08 +0800
Subject: [PATCH] =?UTF-8?q?:rocket:=20feat(=E6=96=B0=E5=A2=9E):=20?=
=?UTF-8?q?=E6=9C=AA=E8=A7=A3=E5=86=B3=E9=85=8D=E5=90=88MyBatisPlus?=
=?UTF-8?q?=E4=BD=BF=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/service-utils/pom.xml | 17 ++--
.../service/config/MybatisPlusConfig.java | 23 ++++-
.../service/config/RedisConfiguration.java | 98 -------------------
service/pom.xml | 12 ---
.../src/main/resources/application-dev.yml | 6 --
.../src/main/resources/application-prod.yml | 5 -
service/src/main/resources/application.yml | 62 ++++++++----
7 files changed, 72 insertions(+), 151 deletions(-)
delete mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java
diff --git a/common/service-utils/pom.xml b/common/service-utils/pom.xml
index 23a0cf0..ddff80f 100644
--- a/common/service-utils/pom.xml
+++ b/common/service-utils/pom.xml
@@ -29,22 +29,17 @@
httpclient
4.5.14
-
-
- org.springframework.boot
- spring-boot-starter-data-redis
-
-
-
- org.redisson
- redisson
- 3.26.1
-
org.lionsoul
ip2region
2.6.5
+
+
+ org.apache.shardingsphere
+ shardingsphere-jdbc-core-spring-boot-starter
+ 5.2.0
+
diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java b/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java
index 5b4b81b..617a519 100644
--- a/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java
+++ b/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java
@@ -6,8 +6,14 @@ import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerIntercep
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
@@ -17,6 +23,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@Slf4j
public class MybatisPlusConfig {
+ @Autowired
+ private ShardingSphereDataSource dataSource;
+
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
log.info("MybatisPlusInterceptor===>注入Mybatis-Plus配置...");
@@ -33,5 +42,17 @@ public class MybatisPlusConfig {
return interceptor;
}
-
+
+ @Bean
+ public SqlSessionFactory sqlSessionFactory() throws Exception {
+ SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
+ sqlSessionFactoryBean.setDataSource(dataSource);
+ // 可以设置MyBatis-Plus的配置,比如mapper.xml的位置等
+ return sqlSessionFactoryBean.getObject();
+ }
+
+ @Bean
+ public PlatformTransactionManager transactionManager() {
+ return new DataSourceTransactionManager(dataSource);
+ }
}
diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java b/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java
deleted file mode 100644
index 1b5c8d7..0000000
--- a/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package cn.bunny.common.service.config;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
-import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
-import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.cache.CacheManager;
-import org.springframework.context.annotation.Bean;
-import org.springframework.data.redis.cache.RedisCacheConfiguration;
-import org.springframework.data.redis.cache.RedisCacheManager;
-import org.springframework.data.redis.connection.RedisConnectionFactory;
-import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
-import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
-import org.springframework.data.redis.serializer.RedisSerializationContext;
-import org.springframework.data.redis.serializer.StringRedisSerializer;
-import org.springframework.stereotype.Component;
-
-import java.time.Duration;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-
-/**
- * 设置Redis序列化
- */
-@Component
-@Slf4j
-public class RedisConfiguration {
- /**
- * 使用StringRedisSerializer序列化为字符串
- */
- @Bean
- public RedisTemplate redisTemplate(LettuceConnectionFactory connectionFactory) {
- log.info("RedisConfiguration===>使用StringRedisSerializer序列化为字符串");
-
- RedisTemplate redisTemplate = new RedisTemplate<>();
- redisTemplate.setConnectionFactory(connectionFactory);
- // 设置key序列化为string
- redisTemplate.setKeySerializer(new StringRedisSerializer());
- // 设置value序列化为JSON,使用GenericJackson2JsonRedisSerializer替换默认序列化
- redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
- redisTemplate.setHashKeySerializer(new StringRedisSerializer());
- redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
-
- return redisTemplate;
- }
-
- /**
- * 解决cache(@Cacheable)把数据缓存到redis中的value是乱码问题
- */
- @Bean
- @SuppressWarnings("all")
- public CacheManager cacheManager(RedisConnectionFactory factory) {
- log.info("RedisConfiguration===>解决cache(@Cacheable)把数据缓存到redis中的value是乱码问题");
-
- // 配置序列化
- RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
- .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
- .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jsonRedisSerializer()))
- .entryTtl(Duration.ofDays(30));
-
- return RedisCacheManager.builder(factory).cacheDefaults(config).build();
- }
-
- /**
- * 指定的日期模式
- */
- public Jackson2JsonRedisSerializer