緩衝技術的使用(hibernate或jpa的二級緩衝,以及頁面jsp層級的緩衝)__js

來源:互聯網
上載者:User

oscache:由OpenSymphony設計,它是一種開創性的JSP定製標記應用,提供了在現有JSP頁面之內實現快速記憶體緩衝的功能。

業務描述:網站對於不經常變動的內容可以用頁面的局布緩衝,提高網站訪問速度

一、全域緩衝
1,引入JAR  oscache-2.4.1.jar
2配置oscache.properties
3 指定記憶體中緩衝的對象個數cache.capacity=10000
4在web.xml中指定緩衝到期時間。以及對哪些訪問路徑進行緩衝
<!-- 頁面緩衝 ,緩衝5分鐘 --> 
     <filter>
  <filter-name>CacheFilter</filter-name> 
  <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class> 
 <init-param>
  <param-name>time</param-name> 
  <param-value>300</param-value> 
  </init-param>
 <init-param>
  <param-name>scope</param-name> 
  <param-value>application</param-value> 
  </init-param>
  </filter>
  <filter-mapping>
  <filter-name>CacheFilter</filter-name> 
  <url-pattern>*.action</url-pattern> 
  </filter-mapping>
二、對局布緩衝
(1)引入JAR  oscache-2.4.1.jar
(2)引用緩衝標籤<%@taglib uri="/WEB-INF/lib/oscache-2.4.1.jar" prefix="os" %>
(3)把需要局布緩衝的內容放進緩衝標籤裡面<os:cache time="10" > <%=new Date() %></os:cache>
同時可以指定到期時間,是否重新整理,作用範圍
參數說明:
time="10"指定到期時間
 refresh="false"是否時時重新整理
 scope="request" 緩衝範圍 request,page,session,application

======================================

ehcache:是一個純Java的進程內緩衝架構,具有快速、精乾等特點,是Hibernate中預設的CacheProvider。

1>. 配置echcache.xml檔案

<?xml version="1.0" encoding="UTF-8"?>
      <ehcache>
      <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="1200" timeToLiveSeconds="1200" overflowToDisk="false" >
      </defaultCache>
       <!-- 單獨對某個entity的緩衝原則設定
      <cache name="com.payment.entity.PromotionEntity" maxElementsInMemory="100" 
           eternal="false"
           timeToIdleSeconds="1200" timeToLiveSeconds="1200" overflowToDisk="false"
           clearOnFlush="true">
      </cache>-->
     </ehcache>

2>.開啟二級緩衝,修改persistence.xml檔案(這裡針對jpa,前面已經對hibernate二級緩衝寫了部落格,在這就不再寫了)

<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
  <persistence-unit name="education" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
         <property name="hibernate.max_fetch_depth" value="3"/>
         <property name="hibernate.hbm2ddl.auto" value="update"/>
    <property name="hibernate.jdbc.fetch_size" value="18"/>
    <property name="hibernate.jdbc.batch_size" value="10"/>
    <property name="hibernate.show_sql" value="true"/>
    <property name="hibernate.format_sql" value="false"/> 
     <!-- 設定II級緩衝供應商 -->
    <property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider" />  
       <property name="hibernate.cache.provider_configuration" value="/ehcache.xml" />      
    <property name="hibernate.cache.use_query_cache" value="true"/>
    <property name="hibernate.cache.use_second_level_cache" value="true"/>
    <property name="hibernate.cache.use_structured_entries" value="true"/>
      </properties>
  </persistence-unit>
</persistence>

3>.指定那些實體類使用二級緩衝:1、在實體上加註解;2、在查詢時先設定緩衝,再查詢。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.