ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在Jboss Seam中使用PojoCache 和Page Fragment Cache (1)

在Jboss Seam中使用PojoCache 和Page Fragment Cache (1)

原创 Linux操作系统 作者:梧桐雨—168 时间:2008-04-18 23:31:44 0 删除 编辑

實際的 Web Application 中,緩存 (cache) 是不可或缺的事。 JBoss Seam 當然也提供了多種緩存服務。在這系列的文中我會講講最高層,最易應用和最易理解的 PojoCache 以及 Page Fragment Cache 。

基本的 Web App

在使用緩存之前,我們首先建立一個 Hello World 程式作為藍本 (源碼 svn)。

  1. 設定 Seam 的 Page Action
    在 resources/WEB-INF/pages.xml 加入以下一句:

    這會讓 seam 在顯示 index.xhtml 前先執行 complexWork.work method。

  2. 設定業務邏輯,這裡我們使用 Stateful Session Bean (SFSB)。

    @Stateful 代表這是個 SFSB。@Name 指定了它在 seam 中的名字,我們以後可以用 complexWork 在 seam 中稱呼它。work() 是我們的主要業務邏輯 ,它會等待一秒以模擬一些繁重的工作,再把 message 設定為 “Hello, World”。@Out annotation 會讓 seam 知道我們想在頁面上看到 message。

    src/action/hk/reality/seam/cache/action/ComplexWork.java

    src/action/hk/reality/seam/cache/action/ComplexWorkBean.java

  3. 設定 view:

    沒有甚麼值得一談的,只是把 message 顯示出來:

    view/index.xhtml

    view/index.xhtml

  4. Deploy 後到 http://127.0.0.1:8080/cachetest/index.seam 可以看到結果:

    留意 console ,每次 refresh 網頁 SFSB 也在重新工作:

    接著我們要為 SFSB 加入緩存 。

使用 PojoCache

PojoCache 是 seam 內置的 Java 物件緩存組件。PojoCache 支援 JTA transaction manager,isolation level,replication,overflowing, eviction policy 等功能,要完整設定並不簡單。但要讓它可以供 seam 應用則不難,首先要在 resources 下加入設定檔 treecache.xml 。(源碼 svn)

這個設定檔中值得留意的是 Eviction Policy 。 Eviction Policy 是指 PojoCache 移除 cache 中的規則。現在 PojoCache 只支援 LRU (Least Recently Used) policy。現在的設定下,在 “/message” region 中最多可存放 100 個物件,每個物件最多可以保留 10 秒。詳細的設定可以參考 JBoss TreeCache Manual 中的 LRU eviction policy。

接著在需要 PojoCache 的 component 中指定 Injection :

留意改動後的 work() 方法,使用 pojoCache 就如一般的 Map 一樣簡單。

使用 PojoCache 後再到 index.seam,會發現只有第一次啟動網頁時需要較長時間。
在之後十秒內再 refresh 網頁幾乎不用任何等待,這是由於我們設定了緩存有 10 秒的壽命。

在此我們己經成功設定 seam 使用 PojoCache 了!第二部份將會討論使用 Page Fragment Cache 以及手動移除 Cache 的方法。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13270562/viewspace-244079/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-28

  • 博文量
    141
  • 访问量
    429026