OSCache简介

 

Opensymphonyhttp://www.opensymphony.com)是一个很好提供开源项目的组织。同Jakarta相比,这里的组件(Component)更多的是精致小巧的设计,它们尤以简单易用和可插拔的灵活性见长。

OSCacheJ2EE Caching机制。它主要用于JSP CachingRequest CachingGeneral-Purpose Cache三个方面。在JSP CachingRequest Caching方面,OSCache能够解决动态网站的基本问题:缓存动态内容、缓存二进制内容、错误包容。在General-Purpose Cache方面,在Java应用中通过调用OSCacheAPI来缓存任意的Java对象,hibernate 2.0开始对其也有支持。

OSCache标记库是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。虽然已经有一些供应商在提供各种形式的缓存产品,但是,它们都属于面向特定供应商的产品。OSCache能够在任何JSP 1.2兼容的服务器上运行,它不仅能够为所有用户缓冲现有JSP代码块,而且能够以用户为单位进行缓冲。OSCache还包含一些提高可伸缩性的高级特性,比如:缓冲到磁盘,可编程的缓冲刷新,异常控制,等等。

 

 


 

以上文字摘自moxie(安子)的《WebWork教程-0.90版》

网上对OSCache的介绍大多是关于JSP CachingRequest Caching方面的,对任意java对象的缓冲大多数人选择了JCS。由于种种原因,hibernate 2.0 放弃了对 JCS 的支持,所以才引起了我对 OSCache 的关注,下面是我参考 hibernate 的源码对 OSCache 做的简单封装

/** Cache.java */
public interface Cache {
 Object get(Object key) throws CacheException;
 void put(Object key, Object value) throws CacheException;
 void remove(Object key) throws CacheException;
 void clear() throws CacheException;
 void destroy() throws CacheException;}

/** OSCache.java */
public class OSCache implements Cache {
 private GeneralCacheAdministrator cache = null;

 public OSCache(Properties prop) {
  cache = new GeneralCacheAdministrator(prop);
 }

 public void setCacheCapacity(int cacheCapacity) {
  cache.setCacheCapacity(cacheCapacity);
 }

 public Object get(Object key) throws CacheException {
  try {
   return cache.getFromCache(String.valueOf(key));
  } catch (NeedsRefreshException e) {
   cache.cancelUpdate(String.valueOf(key));
   return null;
  }
 }

 public void put(Object key, Object value) throws CacheException {
  cache.putInCache(String.valueOf(key), value);
 }

 public void remove(Object key) throws CacheException {
  cache.flushEntry(String.valueOf(key));
 }

 public void clear() throws CacheException {
  cache.flushAll();
 }

 public void destroy() throws CacheException {
  cache.destroy();
 }
}

/** CacheManager.java */
public class CacheManager { //$SUP-USP$

 private static Map cacheMap = new HashMap();
 private static Config config = ConfigManager.getConfig();

 private CacheManager() {
 }

 public static Cache getCache(Class clazz) {
  return getCache(clazz.getName());
 }

 public static Cache getCache(String cacheId) {
  Cache cache = null;

  cache = (Cache) cacheMap.get(cacheId);

  if (cache == null) {
   cache = new OSCache(config.getProperties());
   cacheMap.put(cacheId, cache);
  }

  return cache;
 }
}<转>

 

资源下载链接为: https://pan.quark.cn/s/d0b0340d5318 Cartopy安装所需包分为两个部分,分别需要下载。以下是下载链接和建议的操作步骤: Cartopy安装所需包2:Cartopy安装所需包2.rar 安装教程:Cartopy安装教程之pip篇 下载文件: 首先,分别下载上述两个链接中的文件。第一个链接包含了Cartopy安装所需的包(部分),第二个链接是详细的安装教程。 建议将下载的文件解压后,统一放在一个路径下,例如命名为“Cartopy安装文件”的文件夹,方便后续操作。 参考安装教程: 安装教程详细介绍了通过pip安装Cartopy的步骤,包括环境变量设置、下载必要安装包、安装过程以及测试。 根据教程,需要安装的依赖包包括numpy、pyshp、Shapely、pyproj、Pillow等,教程中还提供了针对Windows系统的预编译版本下载链接。 安装过程中可能会遇到缺少pykdtree和scipy模块的情况,教程也提供了相应的解决方法。 安装注意事项: 确保Python环境变量已正确设置,可通过命令行输入python --version来验证。 安装Wheel工具,用于安装.whl文件。 按照教程中的命令依次安装各个依赖包,注意版本号需与Python版本匹配。 如果遇到缺少模块的错误,按照教程中的方法进行安装。 通过以上步骤,可以顺利完成Cartopy的安装。如果在安装过程中遇到问题,可以参考安装教程中的详细说明或在相关社区寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值