Skip to content

Commit 320475f

Browse files
committed
Add @ConditionalOnBean annotations to RedisJsonSerializerAutoConfiguration for conditional bean creation
1 parent b058ef6 commit 320475f

2 files changed

Lines changed: 5 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,3 +197,4 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
197197
- Dependency versions are unified in `gradle/libs.versions.toml`
198198
- Use `./gradlew versionCatalogUpdate` to check for dependency updates
199199
- Version publishing through Maven Central Repository, naming rule: `io.github.truenine:composeserver-{module-name}`
200+
- 这是一个库项目,类似于springboot

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import io.github.truenine.composeserver.depend.jackson.autoconfig.JacksonAutoCon
77
import io.github.truenine.composeserver.logger
88
import java.time.Duration
99
import org.springframework.beans.factory.annotation.Qualifier
10+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean
1011
import org.springframework.context.annotation.Bean
1112
import org.springframework.context.annotation.Configuration
1213
import org.springframework.data.redis.cache.RedisCacheConfiguration
@@ -24,6 +25,7 @@ import org.springframework.data.redis.serializer.StringRedisSerializer
2425
* @since 2023-02-20
2526
*/
2627
@Configuration
28+
@ConditionalOnBean(RedisConnectionFactory::class)
2729
class RedisJsonSerializerAutoConfiguration(@Qualifier(JacksonAutoConfiguration.NON_IGNORE_OBJECT_MAPPER_BEAN_NAME) objectMapper: ObjectMapper) {
2830
companion object {
2931
@JvmStatic private val log = logger<RedisJsonSerializerAutoConfiguration>()
@@ -41,6 +43,7 @@ class RedisJsonSerializerAutoConfiguration(@Qualifier(JacksonAutoConfiguration.N
4143
.disableCachingNullValues()
4244

4345
@Bean(name = [ICacheNames.IRedis.HANDLE])
46+
@ConditionalOnBean(name = [VIRTUAL_THREAD_REDIS_FACTORY_BEAN_NAME])
4447
fun customRedisJsonSerializable(@Qualifier(VIRTUAL_THREAD_REDIS_FACTORY_BEAN_NAME) factory: RedisConnectionFactory): RedisTemplate<String, *> {
4548
log.trace("register redisTemplate factory: {}", factory)
4649
val rt = RedisTemplate<String, Any?>()
@@ -55,6 +58,7 @@ class RedisJsonSerializerAutoConfiguration(@Qualifier(JacksonAutoConfiguration.N
5558
}
5659

5760
@Bean(name = [ICacheNames.IRedis.CACHE_MANAGER])
61+
@ConditionalOnBean(name = [VIRTUAL_THREAD_REDIS_FACTORY_BEAN_NAME])
5862
fun cacheManager2h(@Qualifier(VIRTUAL_THREAD_REDIS_FACTORY_BEAN_NAME) factory: RedisConnectionFactory): RedisCacheManager {
5963
log.debug("register RedisCacheManager , factory: {}", factory)
6064
return asCacheConfig(factory)

0 commit comments

Comments
 (0)