Java缓存Ehcache-核心类和方法介绍

Ehcache中核心类和方法

EhCache里面有一个CacheManager类型,它负责管理cache。Cache里面存储着Element对象,Element必须是key-value对。Cache是实际物理实现的,在内存中或者磁盘。这些组件的逻辑表示就是下面即将要讨论的类。他们的方法提供了可编程的访问方式。

CacheManager

负责Cache的创建、访问、移除。

CacheManager创建

CacheManager支持两种创建模式:单例(Singleton mode)和实例(InstanceMode)。

在2.5之前的版本中,在同一个JVM中允许存在任意数量相同名字的CacheManager。每调用new CacheManager(...)一次,就会产生一个新的CacheManager实例,而不管已经存在多少个。调用CacheManager.create(...),则返回的是已经存在的那个配置对应的单例CacheManager,如果不存在,则创建一个。

2.5之后的版本,不允许在同一个JVM内存在多个具有相同名字的CacheManager。创建非单例实例的CacheManager()构造函数可能会打破这一规则,但是会抛出NPE异常。如果你的代码要在同一个JVM创建多个同名的实例,请使用静态方法CacheManager.create(),总是返回对应名的CacheManager(如果已经存在),否则创建一个。

事实上,我们可以直接利用Spring中的EhCacheManagerFactoryBean[spring2.5.4]来帮我们完成CacheManager的创建,看看它的具体创建方式:

if (this.shared) {
			// Shared CacheManager singleton at the VM level.
			if (this.configLocation != null) {
				this.cacheManager = CacheManager.create(this.configLocation.getInputStream());
			}
			else {
				this.cacheManager = CacheManager.create();
			}
		}
		else {
			// Independent CacheManager instance (the default).
			if (this.configLocation != null) {
				this.cacheManager = new CacheManager(this.configLocation.getInputStream());
			}
			else {
				this.cacheManager = new CacheManager();
			}
		}
		if (this.cacheManagerName != null) {
			this.cacheManager.setName(this.cacheManagerName);
		}

EhCache2.5.2及其以上版本的创建方法归纳如下:

  • CacheManager.newInstance(Configuration configuration) :创建一个新的CacheManager 对象或者返回已经存在的对应配置中名字的CacheManager
  • CacheManager.create():创建一个新的默认配置的单例CacheManager ,或者返回一个已经存在的单例。
  • CacheManager.create(Configuration configuration),创建一个对应传入配置文件中名字的单例CacheManager,或者返回已经存在的单例CacheManager。
  • new CacheManager(Configuration configuration),创建一个新的CacheManager,或者如果对应配置的CacheManager已经存在或配置参数为空,抛出异常。

在Instance Mode中,如果Cache均使用MemoryStore,则没有什么特别需要注意的。但是如果使用了DIskStore,那么每个CacheManager必须具有不同的diskStore路径。当一个新的CacheManager被创建的时候,需要检查没有别的CacheManager使用同样的DiskStore路径。如果有,就会抛出异常CacheException。如果CacheManager是集群中一部分,那么其监听端口必须唯一。

Singletonmode和Instance Mode可以混合使用,而不会产生冲突。

Ehcache

所有的cache都实现了接口Ehcache。每个cache都有名字和属性,且包含Element。

Ehcache中的cache相当于其他缓存系统中的一块缓存区域。

Element

Element是存放于cache中的原子单位。它有一个key、一个value以及关于访问的记录。Element被放进到cache或者从cache移除。他们也可能会由于过期被移除,这依赖于配置。

参考资料:

源文档 <http://ehcache.org/documentation/get-started/key-classes-methods>

时间: 2024-11-03 22:01:58

Java缓存Ehcache-核心类和方法介绍的相关文章

转:java中包、类、方法、属性、常量的命名规则

必须用英文,不要用汉语拼音 1:包(package):用于将完成不同功能的类分门别类,放在不同的目录(包)下,包的命名规则:将公司域名反转作为包名.比如www.sohu.com 对于包名:每个字母都需要小写.比如:com.sohu.test;该包下的Test类的全名是:com.sohu.Test.java . 如果定义类的时候没有使用package,那么java就认为我们所定义的类位于默认包里面(default package). 2:类:首字母大写,如果一个类由多个单词构成,那么每个单词的首字

Java中关于日期类那些方法

转载请注明出处http://blog.csdn.net/harryweasley/article/details/41977633,谢谢 本篇文章主要介绍Date,DateFormat,SimpleDateFormat,Calendar这四个类 Date类: 在java.util包下 类 Date 表示特定的瞬间,精确到毫秒. 从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串.Date 中的相应方法已废弃.

Java中各种(类、方法、属性)访问修饰符与修饰符的说明

类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所有类访问(使用),其他项目若想使用本项目中的类,必须将本项目打包为jar包,然后加入到classpath中 public类必须定义在和类名相同的同名文件中 (default) 只能被同一个包中的类访问(使用) 默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中 修饰符 名称

Java中静态关键字的使用方法介绍二

1         静态方法 前面我们了解了静态成员变量的一些使用的方式,现在我们接着探讨一下静态方法的相关内容,并了解一下静态方法的使用情况. 1.1      静态方法和一般方法的定义方法 在类中我们可以定义类的方法,如果当一个方法的前面加了关键字Static,也当方法使用静态修饰符时,我们则称这个方法为静态方法,没有这个关键字,则不是静态方法.还是以Car类为例,定义一个静态方法stop(),和一个非静态方法show(),具体看下面代码所示. public class Car { publ

Java基础(43):Java中的Object类与其方法(转)

Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. Object类是Java中唯一没有父类的类. 其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法. Object类中的方法 构造方法:public Object() 文档中的类概览: Java中的每个类都具有定义在Object类中的这些方法. protected Object cl

Math类的方法介绍

java中lang包下类Math一些方法介绍 public class MathDemo { public static void main(String[] args) { test01(); test02(); test03(); test04(); } /* *生成随机的四位数 *Math.random()产生[0,1)的随机数double类型 */ public static void test01() { int number = (int) (Math.random()*9000 +

Java中静态关键字的使用方法介绍三

1.1      静态方法main()的解析 1.1.1   静态方法main()的语句组成 在我们使用java语言进行编程中,常常用到要一个main()函数,这是一个程序的入口,是整个程序中最为重要的部分之一.通常,main函数按照以下格式进行书写. public static void main(String[] args) { } 我们发现main()函数前面存在静态修饰符Static那说明main函数就是一个静态方法.那么这个main函数语句到底由什么组成呢?下面我们就来分析一下main

java 缓存ehcache的使用(使用方式一)

实体要序列化 resource文件夹下建立 ehcache.xml <?xml version="1.0" encoding="UTF-8"?> <ehcache> <diskStore path="java.io.tempdir" /> <defaultCache maxElementsInMemory="1000" eternal="false" timeToI

Java中静态关键字的使用方法介绍四

1         静态代码块 下面介绍一种不是很常见的静态修饰符的使用方法.当我们需要一个类,这个类的构造函数是私有的,那么这个类之外其他程序就不能够创建这个类的对象.那么如何初始化这个类呢? 为了解决这个问题,我们可以使用前文中的静态成员变量或者静态方法来初始化类.在类的加载过程中,静态成员变量和静态方法同时也就加载完成了.除了上面的两种方法还有一种更加简单的方法,就是在类中使用静态代码块.静态代码块不是一个方法,它的写法很简单,如下: public class Car {