1. 环境二台pc,ip地址分别为ip1:192.168.2.100, ip2: 192.168.2.249
2. JFinal框架的开发环境
3. 配置XML
ip2的xml配置只要将ip地址调换过来即可。
其中 ip1机器的xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi=" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false" monitoring="autodetect" dynamicConfig="true"> <diskStore path="java.io.tmpdir"/> <defaultCache maxEntriesLocalHeap="10000" eternal="false" overflowToDisk="true" timeToIdleSeconds="20" timeToLiveSeconds="60"> </defaultCache> <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" properties="peerDiscovery=manual, rmiUrls=//192.168.2.249:40001/loginCache|//192.168.2.249:40001/answer" propertySeparator="," /> <cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" properties="hostName=192.168.2.100, port=40001, socketTimeoutMillis=2000" /> <!-- · 将系统登陆用户信息写到缓存里面 ,可以进行验证 --> <cache name="loginCache" maxEntriesLocalHeap="500" eternal="false" overflowToDisk="true" timeToIdleSeconds="300" timeToLiveSeconds="600" diskPersistent="true" diskExpiryThreadIntervalSeconds="1" memoryStoreEvictionPolicy="LFU" > <cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" properties="replicateAsynchronously=true, replicatePuts=true, replicatePutsViaCopy=true, replicateUpdates=true, replicateUpdatesViaCopy=true, replicateRemovals=true, asynchronousReplicationIntervalMillis=200"/> <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"/> </cache> <!-- Sample cache named sampleCache2 This cache has a maximum of 1000 elements in memory. There is no overflow to disk, so 1000 is also the maximum cache size. Note that when a cache is eternal, timeToLive and timeToIdle are not used and do not need to be specified. 答题验证 --> <cache name="answer" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="false" memoryStoreEvictionPolicy="FIFO" > <searchable/> </cache></ehcache>
4. 在JFinal启动的时候进行缓存预处理,在Config文件中加入如下代码。这样在项目启动后即可将缓存加载。@Override
public void afterJFinalStart() { //系统启动后做缓存数据处理代码 CacheManager.LoadCache(); super.afterJFinalStart(); }说明: 在项目启动后,会进行一次缓存同步。之后当缓存中有更新,增加,删除等操作会自动进行同步。