All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.dengchen2020.ratelimiter.config.LocalRateLimiterAutoConfiguration Maven / Gradle / Ivy

There is a newer version: 0.0.28
Show newest version
package io.github.dengchen2020.ratelimiter.config;

import com.github.benmanes.caffeine.cache.Caffeine;
import io.github.dengchen2020.ratelimiter.local.LocalRateLimiterAop;
import io.github.dengchen2020.ratelimiter.properties.RateLimiterBuilder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 单机限流自动配置
 *
 * @author dengchen
 * @since 2024/7/1
 */
@ConditionalOnClass(Caffeine.class)
@ConditionalOnProperty(value = "dc.ratelimiter.type",matchIfMissing = true,havingValue = "local")
@EnableConfigurationProperties(RateLimiterBuilder.class)
@Configuration(proxyBeanMethods = false)
public class LocalRateLimiterAutoConfiguration {

    @ConditionalOnProperty(value = "dc.ratelimiter.enable", matchIfMissing = true, havingValue = "true")
    @Bean
    public LocalRateLimiterAop rateLimiterAop() {
        return new LocalRateLimiterAop();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy