本文整理汇总了Java中io.github.bucket4j.grid.jcache.JCache类的典型用法代码示例。如果您正苦于以下问题:Java JCache类的具体用法?Java JCache怎么用?Java JCache使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
JCache类属于io.github.bucket4j.grid.jcache包,在下文中一共展示了JCache类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: RateLimitingFilter
import io.github.bucket4j.grid.jcache.JCache; //导入依赖的package包/类
public RateLimitingFilter(JHipsterProperties jHipsterProperties) {
this.jHipsterProperties = jHipsterProperties;
CachingProvider cachingProvider = Caching.getCachingProvider();
CacheManager cacheManager = cachingProvider.getCacheManager();
CompleteConfiguration<String, GridBucketState> config =
new MutableConfiguration<String, GridBucketState>()
.setTypes(String.class, GridBucketState.class);
this.cache = cacheManager.createCache(GATEWAY_RATE_LIMITING_CACHE_NAME, config);
this.buckets = Bucket4j.extension(JCache.class).proxyManagerForCache(cache);
}
开发者ID:oktadeveloper,项目名称:jhipster-microservices-example,代码行数:13,代码来源:RateLimitingFilter.java
示例2: checkThatInfinispanProviderUnsupported
import io.github.bucket4j.grid.jcache.JCache; //导入依赖的package包/类
@Test(expected = UnsupportedOperationException.class)
public void checkThatInfinispanProviderUnsupported() {
Bucket4j.extension(JCache.class).builder().
addLimit(Bandwidth.simple(10, Duration.ofSeconds(60))).
build(cache, "42", RecoveryStrategy.RECONSTRUCT);
}
开发者ID:vladimir-bukhtoyarov,项目名称:bucket4j,代码行数:7,代码来源:InfinispanJCacheTest.java
示例3: buildFilterConfig
import io.github.bucket4j.grid.jcache.JCache; //导入依赖的package包/类
/**
* This method
*
* @param config
* @param cacheManager
* @param expressionParser
* @param beanFactory
* @return
*/
public FilterConfiguration buildFilterConfig(Bucket4JConfiguration config, CacheManager cacheManager, ExpressionParser expressionParser, BeanFactory beanFactory) {
FilterConfiguration filterConfig = new FilterConfiguration();
filterConfig.setUrl(config.getUrl());
filterConfig.setOrder(config.getFilterOrder());
filterConfig.setStrategy(config.getStrategy());
filterConfig.setHttpResponseBody(config.getHttpResponseBody());
ProxyManager<String> buckets = Bucket4j.extension(JCache.class).proxyManagerForCache(jCache(config.getCacheName(), cacheManager));
config.getRateLimits().forEach(rl -> {
ConfigurationBuilder<?> configBuilder = Bucket4j.configurationBuilder();
for (BandWidthConfig bandWidth : rl.getBandwidths()) {
configBuilder = configBuilder.addLimit(Bandwidth.simple(bandWidth.getCapacity(), Duration.of(bandWidth.getTime(), bandWidth.getUnit())));
};
final ConfigurationBuilder<?> configBuilderToUse = configBuilder;
RateLimitCheck rlc = (servletRequest) -> {
boolean skipRateLimit = false;
if (rl.getSkipCondition() != null) {
skipRateLimit = skipCondition(rl, expressionParser, beanFactory).evalute(servletRequest);
}
if(rl.getExecuteCondition() != null && !skipRateLimit) {
skipRateLimit = !executeCondition(rl, expressionParser, beanFactory).evalute(servletRequest);
}
if(!skipRateLimit) {
String key = getKeyFilter(filterConfig.getUrl(), rl, expressionParser, beanFactory).key(servletRequest);
Bucket bucket = buckets.getProxy(key, () -> configBuilderToUse.buildConfiguration());
ConsumptionProbe probe = bucket.tryConsumeAndReturnRemaining(1);
return probe;
}
return null;
};
filterConfig.getRateLimitChecks().add(rlc);
});
return filterConfig;
}
开发者ID:MarcGiffing,项目名称:bucket4j-spring-boot-starter,代码行数:54,代码来源:Bucket4JBaseConfiguration.java
注:本文中的io.github.bucket4j.grid.jcache.JCache类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论