对比新文件 |
| | |
| | | package com.iailab.framework.ratelimiter.config; |
| | | |
| | | import com.iailab.framework.ratelimiter.core.aop.RateLimiterAspect; |
| | | import com.iailab.framework.ratelimiter.core.keyresolver.RateLimiterKeyResolver; |
| | | import com.iailab.framework.ratelimiter.core.keyresolver.impl.*; |
| | | import com.iailab.framework.ratelimiter.core.redis.RateLimiterRedisDAO; |
| | | import com.iailab.framework.redis.config.IailabRedisAutoConfiguration; |
| | | import org.redisson.api.RedissonClient; |
| | | import org.springframework.boot.autoconfigure.AutoConfiguration; |
| | | import org.springframework.context.annotation.Bean; |
| | | |
| | | import java.util.List; |
| | | |
| | | @AutoConfiguration(after = IailabRedisAutoConfiguration.class) |
| | | public class IailabRateLimiterConfiguration { |
| | | |
| | | @Bean |
| | | public RateLimiterAspect rateLimiterAspect(List<RateLimiterKeyResolver> keyResolvers, RateLimiterRedisDAO rateLimiterRedisDAO) { |
| | | return new RateLimiterAspect(keyResolvers, rateLimiterRedisDAO); |
| | | } |
| | | |
| | | @Bean |
| | | @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") |
| | | public RateLimiterRedisDAO rateLimiterRedisDAO(RedissonClient redissonClient) { |
| | | return new RateLimiterRedisDAO(redissonClient); |
| | | } |
| | | |
| | | // ========== 各种 RateLimiterRedisDAO Bean ========== |
| | | |
| | | @Bean |
| | | public DefaultRateLimiterKeyResolver defaultRateLimiterKeyResolver() { |
| | | return new DefaultRateLimiterKeyResolver(); |
| | | } |
| | | |
| | | @Bean |
| | | public UserRateLimiterKeyResolver userRateLimiterKeyResolver() { |
| | | return new UserRateLimiterKeyResolver(); |
| | | } |
| | | |
| | | @Bean |
| | | public ClientIpRateLimiterKeyResolver clientIpRateLimiterKeyResolver() { |
| | | return new ClientIpRateLimiterKeyResolver(); |
| | | } |
| | | |
| | | @Bean |
| | | public ServerNodeRateLimiterKeyResolver serverNodeRateLimiterKeyResolver() { |
| | | return new ServerNodeRateLimiterKeyResolver(); |
| | | } |
| | | |
| | | @Bean |
| | | public ExpressionRateLimiterKeyResolver expressionRateLimiterKeyResolver() { |
| | | return new ExpressionRateLimiterKeyResolver(); |
| | | } |
| | | |
| | | } |