OSCACHE

所須要的jar包:
 oscache-2.4.1.jar
 假如要用oscache註解的話還需jar:
 cglib-nodep-2.1_3.jar
 commons-logging.jar
 log4j-1.2.15.jar
 spring-modules-cache.jar
 spring.jar
 oscache.properties配置以下:
 # 是否使用內存做爲緩存空間
 cache.memory=true
 cache.key=_oscache_cache
 # 若是使用磁盤緩存(cache.memory=true),則須要指定磁盤存儲接口實現
 cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener
 # ie Windows:
 cache.path=D:\\dcache
 # 緩存調度算法
 cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache
 #緩存管理事件監聽器,經過這個監聽器能夠獲知當前Cache的運行狀況 cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JMSBroadcastingListener

 # 內存中緩存的最大容量
html

cache.capacity=1000node

ibatis.xml:
web


<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap          PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"          "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap namespace="aaa">


 type:
 當type="OSCACHE",程序將自動在classpath下尋找oscache.properties
算法

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="Users">
    <cacheModel id="product-cache" type="OSCACHE">        
        <flushInterval hours="24"/>        
        <flushOnExecute statement="aaa.insertUser"/>         
        <flushOnExecute statement="aaa.updateUser"/>        
        <flushOnExecute statement="aaa.deleteUser"/>        
        <property name="size" value="1000" />    
    </cacheModel>        
    <typeAlias alias="user" type="com.test.po.TestUser"/>
    <resultMap class="com.test.po.TestUser" id="resultUser">        
        <result property="userId" column="id"/>        
        <result property="userName" column="name"/>        
        <result property="userAge" column="age"/>    
    </resultMap>  
                               
    <!-- 根據ID查詢用戶 -->    
    <select id="selectByUserId" parameterClass="user" resultClass="user">
                             
        select id as userId , name as userName , age as userAge from users where id = #userId#;
                         
    </select>        
                         
    <!-- 查詢用戶集合 -->    
    <select id="selectByList" resultMap="resultUser" cacheModel="product-cache">        
        select * from users;    
    </select>        
                         
    <!-- 添加用戶 -->    
    <insert id="insertUser" parameterClass="user">        
        insert into users(name,age) values(#userName#,#userAge#);    
    </insert>        
                         
    <!-- 刪除用戶 -->    
    <delete id="deleteUser" parameterClass="user">        
        delete from users where id = #userId#;    
    </delete>        
                         
    <!-- 修改用戶 -->    
    <update id="updateUser" parameterClass="user">        
        update users set name = #userName# where id = #userId#;   
    </update>
</sqlMap>


 OSCACHE還有個它主要的功能就是對頁面的緩存
 在web.xml進行一些簡單的配置,oscache提供了強大的標籤。主要是針對jsp的,若是項目中需把 oscache.tld放到WEB-INF/classes下,在再web.xml中配置一下。

 web.xmlspring

<!-- 在jsp中使用oscahche標籤 --> 
<jsp-config>  
    <taglib>   
        <taglib-uri>oscache</taglib-uri>   
        <taglib-location>/WEB-INF/classes/oscache.tld</taglib-location>  
    </taglib> 
</jsp-config>


 在jsp中應用的話,還需簡單的引入。<%@ taglib uri="oscache" prefix="cache" %>
 具體的應用:<cache:cache key="testcache"></cache:cache>。

 以上是針對具體的頁面的配置步驟。若是想針對某一頁面的類型進行配置,能夠利用過濾器來配置。好比咱們想對以*.jsp的頁面進行緩存的話,咱們只需這樣簡單的配置在web.xml中。
sql

<!-- 針對jsp頁面進行緩存 -->
<filter>     
    <filter-name>CacheFilter</filter-name>   
    <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>      
    <init-param>          <!-- oscache緩存過時時間 -->            
        <param-name>time</param-name>           
        <param-value>60</param-value>      
    </init-param>       
    <init-param>                                    
        <param-name>scope</param-name>          
        <param-value>session</param-value>      
    </init-param>    
</filter>
<filter-mapping>       
    <filter-name>CacheFilter</filter-name>       
    <url-pattern>*.jsp</url-pattern>
</filter-mapping>


 若是想對某一訪問的路徑action進行緩存的話,咱們能夠這樣作,在一個jsp文件中簡單的加上
 jsp頁面
apache



<oscache:cache>    <jsp:include page ="/view.do"/> </oscache:cache>


 OSCache的配置比較活的,你能夠根據你的狀況進行相應的配置。它主要是針對頁面級的對象。
 簡單的說,緩存就是Map<key,value>,建立緩存就是添加一個map,使用就是經過key取value.
緩存

相關文章
相關標籤/搜索