• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java JCache类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java JIObjectFactory类代码示例发布时间:2022-05-22
下一篇:
Java InternalKieModule类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap