bboss文件缓存组件FileContentCache介绍

bboss文件缓存组件FileContentCache介绍

[size=large][b]bboss文件缓存组件FileContentCache作用[/b][/size]

我们经常需要在程序中频繁地读取文件内容,如果在高并发情况下频繁地访问文件系统会导致频繁的IO操作或者超出linux允许访问的最大文件句柄数;那么通过缓存文件内容可以很好地解决这个问题,同时如果文件内容有变化还需要将最新内容更新到缓存区。

三种不同的获取文件内容的机制示意图:
[img]http://dl2.iteye.com/upload/attachment/0115/3464/1e9e9ef6-b8d0-3638-89b0-fd28b541c84a.gif[/img]
方式一 每次都访问物理文件
方式二 第一次读物理文件,以后都从缓存区获取文件内容
方式三 第一次读物理文件,以后都从缓存区获取文件内容,但是后台会开启一个守护进程定时探测所有已经加载的文件是否有变动,有变动则将最新的文件内容加载到缓存区,确保后续读取到的文件内容是最新的内容。
FileContentCache采用方式三对文件内容进行缓存,同时提供了对文件内容进行格式化处理的实用方法。

[size=large][b]bboss文件缓存组件FileContentCache使用[/b][/size]
bboss文件缓存组件FileContentCache使用非常简单,直接看[url=https://github.com/bbossgroups/bboss/blob/master/bboss-util/test/org/frameworkset/util/FileContentCacheTest.java]示例[/url]代码:

try {
//创建一个文件内容缓存组件并初始化,一般采用单列模式创建,根据需要可以创建多个单列实例。
FileContentCache fileContentCache = new FileContentCache();
fileContentCache.setRefreshInterval(5000);//设置定时探测扫描文件时间间隔,单位:毫秒,每个组件只会以daemon模式启动一个线程。
fileContentCache.start("测试缓存组件");

//使用组件方法获取文件内容:第一次从缓存读取
String content = fileContentCache.getFileContent( "/opt/source/Test.java", "UTF-8",FileContentCache.PLAINEncode);//对内容不做任何处理
content = fileContentCache.getFileContent( "/opt/source/Test.java", "UTF-8",FileContentCache.HTMLEncodej);//对html转义存储的文件内容进行还原处理
content = fileContentCache.getFileContent( "/opt/source/Test.java", "UTF-8",FileContentCache.HTMLNoBREncode);//对内容进行html转义处理,忽略回车换行处理
content = fileContentCache.getFileContent( "/opt/source/Test.java", "UTF-8",FileContentCache.HTMLEncode);//对内容进行html转义处理

//后续从缓存读取
content = fileContentCache.getFileContent( "/opt/source/Test.java", "UTF-8",FileContentCache.PLAINEncode);//对内容不做任何处理
content = fileContentCache.getFileContent( "/opt/source/Test.java", "UTF-8",FileContentCache.HTMLEncodej);//对html转义存储的文件内容进行还原处理
content = fileContentCache.getFileContent( "/opt/source/Test.java", "UTF-8",FileContentCache.HTMLNoBREncode);//对内容进行html转义处理,忽略回车换行处理
content = fileContentCache.getFileContent( "/opt/source/Test.java", "UTF-8",FileContentCache.HTMLEncode);//对内容进行html转义处理
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


[size=large][b]bboss文件缓存组件FileContentCache包下载[/b][/size]
bboss文件缓存组件FileContentCache jar包下载地址:[url=https://github.com/bbossgroups/bboss/blob/master/bboss-core/lib/frameworkset-util.jar?raw=true]下载[/url]

运行时需要的依赖包可以到以下地址找到:
[url]https://github.com/bbossgroups/bboss/tree/master/bboss-util/lib[/url]

[size=large][b]bboss文件缓存组件FileContentCache应用案例[/b][/size]
bboss文件缓存组件FileContentCache在bboss相关的应用中得到很好的应用:
应用1:[url=http://www.bbossgroups.com/detail.htm?demoname=index]bboss官网中查看demo程序文件源码功能[/url]

应用2:[url=http://gencode.bbossgroups.com]自动代码生成工程在线查看生成的文件源码功能[/url]

bboss持久层sql配置文件热加载机制、bboss国际化属性配置文件热加载机制、bboss平台模块菜单配置文件热加载机制也是基于文件缓存组件使用的daemon扫描线程组件实现的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值