英文手册:http://docs.spring.io/spring-data/gemfire/docs/1.5.2.RELEASE/reference/html/(Spring Data GemFire Reference Guide)
新版本不用配置Gemfire自带的cache.xml直接用引用名空间的方式,配置Spring配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlxsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:gfe="http://www.springframework.org/schema/gemfire"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd">
<bean id ... >
<gfe:cache ...>
</beans>
注解说明:
<gfe:cache/>创建一个默认的cache:首先Spring会注册一个CacheFactoryBean来创建一个实现了Cache接口的gemfireCache对象。
这个Cache可以是一个既存的也可以是个已经在服务器上存在连接上去的
<gfe:cache id="cache-with-xml" cache-xml-location="classpath:cache.xml"/>也可以指定用Gemfire本地的配置文件配置。
<gfe:cache properties-ref="props"/> <util:properties id="props" location="file:/vfabric/gemfire/gemfire.properties"/> </beans>
也可以这样外化配置,通过引用的properties
文件配置这些配置只有在创建的时候才会应用,如果JVM中已经有Cache了,则会忽略 高级Cache配置
<gfe:cache
copy-on-read="true"
critical-heap-percentage="70"
eviction-heap-percentage="60"
lock-lease="120"
lock-timeout="60"
pdx-serializer="myPdxSerializer"
pdx-disk-store="diskStore"
pdx-ignore-unread-fields="true"
pdx-persistent="true"
pdx-read-serialized="false"
message-sync-interval="1"
search-timeout="300"
close="false"
lazy-init="true">
<gfe:transaction-listener ref="myTransactionListener"/>
<gfe:transaction-writer>
<bean class="org.springframework.data.gemfire.example.TransactionListener"/>
</gfe:transaction-writer>
<gfe:dynamic-region-factory/> 允许Gemfire动态region factory
<gfe:jndi-binding jndi-name="myDataSource" type="ManagedDataSource"/> 声明jdni接口绑定外部数据源
</gfe:cache>
更多的配置信息可以看Gemfire官网 http://gemfire.docs.pivotal.io/index.html
close属性表明cache是否和Spring application context 一起关闭lazy-init是不是等到用的时候才initTransactionListener
中引用的bean必须实现TransactionListener接口use-bean-factory-locator属性代表用Spring内部类型BeanFactoryLocator来让定义在cache.xml中的locator注册成一个 Spring beans
在某些情况下,比如UT和IT时,设置use-bean-factory-locator为false,来防止异常,这个异常也会在用Maven build 脚本启动test的时候。测试人员要fork给每个testFork一个新的JVM。 (in maven, set<forkmode>always</forkmode>
)
允许PDX序列化
时间: 2024-12-21 22:14:45