当前位置: 首页>>代码示例>>Java>>正文


Java JCache类代码示例

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