cef4e48e27
- Gradle multi-module: ga-common, ga-core, ga-api, ga-batch, ga-admin - Flyway V1-V12: org/product/rule/receive/ledger/settle/batch/code/menu/system + seed - ga-common (complete): - model: ApiResponse, PageResponse, SearchParam, TreeNode - exception: ErrorCode, BizException, GlobalExceptionHandler - annotation + aop: @RequirePermission, @DataChangeLog, ApiLog - auth + security: JWT, SecurityConfig - mybatis: BaseMapper, EncryptTypeHandler, JsonTypeHandler, AuditInterceptor - code (Redis cached) / menu (RBAC tree) / file / system / notification - excel: SXSSF+Cursor export, SAX+batch import (1M/700K rows) - util: Date/Money/Mask/Encrypt/Security
45 lines
2.1 KiB
Java
45 lines
2.1 KiB
Java
package com.ga.common.config;
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import org.springframework.cache.CacheManager;
|
|
import org.springframework.cache.annotation.EnableCaching;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
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.core.RedisTemplate;
|
|
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
|
|
import org.springframework.data.redis.serializer.RedisSerializationContext;
|
|
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
|
|
|
import java.time.Duration;
|
|
|
|
@Configuration
|
|
@EnableCaching
|
|
public class RedisConfig {
|
|
|
|
@Bean
|
|
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory cf, ObjectMapper objectMapper) {
|
|
RedisTemplate<String, Object> tpl = new RedisTemplate<>();
|
|
tpl.setConnectionFactory(cf);
|
|
tpl.setKeySerializer(new StringRedisSerializer());
|
|
tpl.setHashKeySerializer(new StringRedisSerializer());
|
|
GenericJackson2JsonRedisSerializer json = new GenericJackson2JsonRedisSerializer(objectMapper);
|
|
tpl.setValueSerializer(json);
|
|
tpl.setHashValueSerializer(json);
|
|
return tpl;
|
|
}
|
|
|
|
@Bean
|
|
public CacheManager cacheManager(RedisConnectionFactory cf, ObjectMapper objectMapper) {
|
|
RedisCacheConfiguration cfg = RedisCacheConfiguration.defaultCacheConfig()
|
|
.entryTtl(Duration.ofHours(1))
|
|
.disableCachingNullValues()
|
|
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
|
|
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(
|
|
new GenericJackson2JsonRedisSerializer(objectMapper)));
|
|
return RedisCacheManager.builder(cf).cacheDefaults(cfg).build();
|
|
}
|
|
}
|