package cn.lihu.jh.framework.idempotent.config; import cn.lihu.jh.framework.idempotent.core.aop.IdempotentAspect; import cn.lihu.jh.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; import cn.lihu.jh.framework.idempotent.core.keyresolver.impl.ExpressionIdempotentKeyResolver; import cn.lihu.jh.framework.idempotent.core.keyresolver.IdempotentKeyResolver; import cn.lihu.jh.framework.idempotent.core.keyresolver.impl.UserIdempotentKeyResolver; import cn.lihu.jh.framework.idempotent.core.redis.IdempotentRedisDAO; import org.springframework.boot.autoconfigure.AutoConfiguration; import cn.lihu.jh.framework.redis.config.JhRedisAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.data.redis.core.StringRedisTemplate; import java.util.List; @AutoConfiguration(after = JhRedisAutoConfiguration.class) public class JhIdempotentConfiguration { @Bean public IdempotentAspect idempotentAspect(List keyResolvers, IdempotentRedisDAO idempotentRedisDAO) { return new IdempotentAspect(keyResolvers, idempotentRedisDAO); } @Bean public IdempotentRedisDAO idempotentRedisDAO(StringRedisTemplate stringRedisTemplate) { return new IdempotentRedisDAO(stringRedisTemplate); } // ========== 各种 IdempotentKeyResolver Bean ========== @Bean public DefaultIdempotentKeyResolver defaultIdempotentKeyResolver() { return new DefaultIdempotentKeyResolver(); } @Bean public UserIdempotentKeyResolver userIdempotentKeyResolver() { return new UserIdempotentKeyResolver(); } @Bean public ExpressionIdempotentKeyResolver expressionIdempotentKeyResolver() { return new ExpressionIdempotentKeyResolver(); } }