IdempotentAutoConfiguration

@AutoConfiguration
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(value = [ProceedingJoinPoint::class])
@ConditionalOnProperty(prefix = "idempotent", name = ["enabled"], havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(value = [IdempotentProperties::class])
class IdempotentAutoConfiguration

Auto-configures Redis-backed idempotent execution support.

Constructors

Link copied to clipboard
constructor()

Functions

Link copied to clipboard
@Bean
@ConditionalOnBean(value = [IdempotentStore::class])
@ConditionalOnMissingBean
fun idempotentAspect(properties: IdempotentProperties, keyResolver: IdempotentKeyResolver, idempotentLeaseManager: IdempotentLeaseManager, idempotentStore: IdempotentStore, jsonMapper: JsonMapper): IdempotentAspect
Link copied to clipboard
@Bean
@ConditionalOnMissingBean(value = [JsonMapper::class])
fun idempotentJsonMapper(): JsonMapper
Link copied to clipboard
@Bean
@ConditionalOnMissingBean(value = [IdempotentKeyResolver::class])
fun idempotentKeyResolver(properties: IdempotentProperties): IdempotentKeyResolver
Link copied to clipboard
@Bean(destroyMethod = "shutdown")
@ConditionalOnBean(value = [IdempotentStore::class])
@ConditionalOnMissingBean(name = ["idempotentLeaseExecutor"])
fun idempotentLeaseExecutor(): ScheduledExecutorService
Link copied to clipboard
@Bean
@ConditionalOnBean(value = [IdempotentStore::class])
@ConditionalOnMissingBean(value = [IdempotentLeaseManager::class])
fun idempotentLeaseManager(properties: IdempotentProperties, idempotentStore: IdempotentStore, idempotentLeaseExecutor: ScheduledExecutorService): IdempotentLeaseManager
Link copied to clipboard
@Bean
@ConditionalOnBean(value = [StringRedisTemplate::class])
@ConditionalOnMissingBean(value = [IdempotentStore::class])
@ConditionalOnProperty(prefix = "idempotent", name = ["store-type"], havingValue = "REDIS", matchIfMissing = true)
fun idempotentStore(stringRedisTemplate: StringRedisTemplate, jsonMapper: JsonMapper): IdempotentStore
Link copied to clipboard
@Bean
@ConditionalOnBean(value = [JdbcTemplate::class])
@ConditionalOnMissingBean(value = [IdempotentStore::class])
@ConditionalOnProperty(prefix = "idempotent", name = ["store-type"], havingValue = "JDBC")
fun jdbcIdempotentStore(properties: IdempotentProperties, jdbcTemplate: JdbcTemplate): IdempotentStore