Ureport2——自定义文件缓存

本文介绍了Ureport2如何通过实现ReportDefinitionCache接口来自定义文件缓存。当系统找不到缓存实现类时,会使用DefaultMemoryReportDefinitionCache,它基于ConcurrentHashMap实现。通过将自定义实现类加入Spring容器,可以实现Ureport2的缓存管理个性化配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ureport2提供了ReportDefinitionCache接口,在使用缓存(保存、加载)的时候,会去Spring容器内找一下ReportDefinitionCache实现类,没找到的情况下会使用默认的DefaultMemoryReportDefinitionCache,这个类中使用ConcurrentHashMap实现缓存效果。下面是源码:

public class CacheUtils implements ApplicationContextAware{
	private static ReportCache reportCache;
	private static ReportDefinitionCache reportDefinitionCache;
	private static String CHART_DATA_key="_chart_data_";
	
	@SuppressWarnings("unchecked")
	public static ChartData getChartData(String chartId){
		String key=CHART_DATA_key;
		if(reportCache!=null){
			Map<String, ChartData> chartDataMap = (Map<String, ChartData>)reportCache.getObject(key);
			if(chartDataMap!=null){
				return chartDataMap.get(chartId);				
			}
		}
		return null;
	}
	
	public static void storeChartDataMap(Map<String, ChartData> map){
		String key=CHART_DATA_key;
		if(reportCache!=null){
		    reportCache.storeObject(key, map);
		}
	}
	
	public static Object getObject(String file){
		if(reportCache!=nul
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值