Skip to content

Commit c02b45f

Browse files
committed
Update RedisJsonSerializerAutoConfiguration
- Replace `slf4j` with `logger` - Add companion object for logger and constant - Remove `@Primary` annotation - Use `@Qualifier` for virtual thread Redis factory bean - Update log messages for better readability
1 parent b769656 commit c02b45f

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

cacheable/src/main/kotlin/io/github/truenine/composeserver/cacheable/autoconfig/RedisJsonSerializerAutoConfiguration.kt

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ import com.fasterxml.jackson.databind.DeserializationFeature
44
import com.fasterxml.jackson.databind.ObjectMapper
55
import io.github.truenine.composeserver.consts.ICacheNames
66
import io.github.truenine.composeserver.depend.jackson.autoconfig.JacksonAutoConfiguration
7-
import io.github.truenine.composeserver.slf4j
7+
import io.github.truenine.composeserver.logger
88
import java.time.Duration
99
import org.springframework.beans.factory.annotation.Qualifier
1010
import org.springframework.context.annotation.Bean
1111
import org.springframework.context.annotation.Configuration
12-
import org.springframework.context.annotation.Primary
1312
import org.springframework.data.redis.cache.RedisCacheConfiguration
1413
import org.springframework.data.redis.cache.RedisCacheManager
1514
import org.springframework.data.redis.connection.RedisConnectionFactory
@@ -18,8 +17,6 @@ import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSeriali
1817
import org.springframework.data.redis.serializer.RedisSerializationContext
1918
import org.springframework.data.redis.serializer.StringRedisSerializer
2019

21-
private val log = slf4j<RedisJsonSerializerAutoConfiguration>()
22-
2320
/**
2421
* redis 缓存组件配置
2522
*
@@ -28,6 +25,11 @@ private val log = slf4j<RedisJsonSerializerAutoConfiguration>()
2825
*/
2926
@Configuration
3027
class RedisJsonSerializerAutoConfiguration(@Qualifier(JacksonAutoConfiguration.NON_IGNORE_OBJECT_MAPPER_BEAN_NAME) objectMapper: ObjectMapper) {
28+
companion object {
29+
@JvmStatic private val log = logger<RedisJsonSerializerAutoConfiguration>()
30+
private const val VIRTUAL_THREAD_REDIS_FACTORY_BEAN_NAME = "redisConnectionFactoryVirtualThreads"
31+
}
32+
3133
private val jsr =
3234
GenericJackson2JsonRedisSerializer(objectMapper).apply { configure { it.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) } }
3335

@@ -38,10 +40,9 @@ class RedisJsonSerializerAutoConfiguration(@Qualifier(JacksonAutoConfiguration.N
3840
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jsr))
3941
.disableCachingNullValues()
4042

41-
@Primary
4243
@Bean(name = [ICacheNames.IRedis.HANDLE])
43-
fun customRedisJsonSerializable(factory: RedisConnectionFactory): RedisTemplate<String, *> {
44-
log.trace("注册 redisTemplate factory = {}", factory)
44+
fun customRedisJsonSerializable(@Qualifier(VIRTUAL_THREAD_REDIS_FACTORY_BEAN_NAME) factory: RedisConnectionFactory): RedisTemplate<String, *> {
45+
log.trace("register redisTemplate factory: {}", factory)
4546
val rt = RedisTemplate<String, Any?>()
4647
rt.setDefaultSerializer(jsr)
4748
rt.hashKeySerializer = srs
@@ -54,8 +55,8 @@ class RedisJsonSerializerAutoConfiguration(@Qualifier(JacksonAutoConfiguration.N
5455
}
5556

5657
@Bean(name = [ICacheNames.IRedis.CACHE_MANAGER])
57-
fun cacheManager2h(factory: RedisConnectionFactory): RedisCacheManager {
58-
log.debug("注册 RedisCacheManager , factory = {}", factory)
58+
fun cacheManager2h(@Qualifier(VIRTUAL_THREAD_REDIS_FACTORY_BEAN_NAME) factory: RedisConnectionFactory): RedisCacheManager {
59+
log.debug("register RedisCacheManager , factory: {}", factory)
5960
return asCacheConfig(factory)
6061
}
6162

@@ -83,7 +84,7 @@ class RedisJsonSerializerAutoConfiguration(@Qualifier(JacksonAutoConfiguration.N
8384
ICacheNames.FOREVER to createRedisCacheConfig(Duration.ZERO),
8485
)
8586

86-
private fun asCacheConfig(factory: RedisConnectionFactory?): RedisCacheManager {
87-
return RedisCacheManager.builder(factory!!).cacheDefaults(cacheManagerConfig.entryTtl(Duration.ofHours(1))).withInitialCacheConfigurations(cacheMap).build()
87+
private fun asCacheConfig(factory: RedisConnectionFactory): RedisCacheManager {
88+
return RedisCacheManager.builder(factory).cacheDefaults(cacheManagerConfig.entryTtl(Duration.ofHours(1))).withInitialCacheConfigurations(cacheMap).build()
8889
}
8990
}

0 commit comments

Comments
 (0)