Java临时缓存API –测试早期草案评审RI
它被稱為“ 永無止境的故事 ”。 JSR在11年半前開始運(yùn)作,并于2001年3月6日通過了JSR 評(píng)審?fù)镀?。 如果您想知道要獲得成千上萬個(gè)低JSR編號(hào)需要什么,那就是秘密。 與邁克爾·恩德(Michael Ende)的德國幻想小說不同,這不是關(guān)于人們?nèi)狈ο胂罅?#xff0c;而是關(guān)于資源,政治討論以及最終關(guān)于許可。 但是,讓我們忘記過去,回到昨天以來的樣子。 請(qǐng)注意,該材料已于2月上載到JCP,但由于將兩家公司作為共享的規(guī)范線索而導(dǎo)致的法律復(fù)雜性得到了解決,因此被推遲了。 這樣做已經(jīng)完成,并且在此過程中不會(huì)成為問題。
這是什么一回事呢?
緩存以極大地加速應(yīng)用程序而聞名。 那些通常使用臨時(shí)數(shù)據(jù),這些臨時(shí)數(shù)據(jù)創(chuàng)建起來很昂貴,但是使用壽命很長,可以重復(fù)使用。 該規(guī)范以允許有效實(shí)現(xiàn)的方式標(biāo)準(zhǔn)化Java對(duì)象的緩存,并減輕了程序員負(fù)擔(dān)實(shí)現(xiàn)緩存過期,互斥,假脫機(jī)和緩存一致性的負(fù)擔(dān)。
它旨在與Java SE和Java EE一起使用。 對(duì)于以后的版本,仍不能保證,它將被包含在即將發(fā)布的EE 7版本中,但是EG正在努力工作,需要您的反饋。
如何獲得它?
那很簡單。 所有必需的工件都已經(jīng)在Maven Central中。 讓我們?yōu)槟鷺?gòu)建一個(gè)非常簡單的示例,以幫助您入門。 啟動(dòng)NetBeans并創(chuàng)建一個(gè)新的Maven Java應(yīng)用程序。 隨意命名(例如cachingdemo,打開pom.xml并添加以下兩個(gè)依賴項(xiàng)):
<dependency><groupId>javax.cache</groupId><artifactId>cache-api</artifactId><version>0.5</version></dependency><dependency><groupId>javax.cache.implementation</groupId><artifactId>cache-ri-impl</artifactId><version>0.5</version></dependency>如果您在那里,請(qǐng)將junit版本更改為4.8.2。
重構(gòu)AppTest以利用新的junit:
package net.eisele.samples.cachingdemo;import org.junit.Test;/*** Simple Cache Test*/ public class AppTest {@Testpublic void testApp() {} }搞定。 為簡化起見,我將在測(cè)試用例中添加一些緩存功能。
基本概念
從設(shè)計(jì)的角度來看,基本概念是CacheManager,用于保存和控制Cache的集合。 緩存具有條目。 基本的API可以認(rèn)為類似于地圖。 就像地圖一樣,數(shù)據(jù)通過鍵存儲(chǔ)為值。 您可以放置??值,獲取值和刪除值。 但是它沒有像keySet()和values()這樣的網(wǎng)絡(luò)成本高的映射方法。 通常,它更喜歡零或低成本回報(bào)類型。 因此,雖然Map具有V put(K鍵,V值),但是javax.cache.Cache具有void put(K鍵,V值)。
// Name for the cacheString cacheName = 'myfearsCache';// Create a cache using a CacheBuilderCache<Integer, String> cache = Caching.getCacheManager().<Integer, String>createCacheBuilder(cacheName).build();// define a valueString value1 = 'Markus';// define a keyInteger key = 1;//put to the cachecache.put(key, value1);// get from the cacheString value2 = cache.get(key);//compare valuesassertEquals(value1, value2); // remove from the cachecache.remove(key);// ceck if removedassertNull(cache.get(key));
即將發(fā)生的事情
這基本上就是目前所有可能的一切。 使用后續(xù)發(fā)行版,您應(yīng)該能夠:
–通過@Annotations與Spring和CDI集成
–使用CacheEventListener
–處理事務(wù)
EG正在積極尋找有關(guān)可用材料的反饋。 因此,如果可以嘗試,請(qǐng)嘗試一下,讓EG知道您的想法!
鏈接和閱讀
JCP頁面:
JSR 107:JCACHE – Java臨時(shí)緩存API
組郵件列表
http://groups.google.com/group/jsr107
在問題跟蹤器中記錄問題
https://github.com/jsr107/jsr107spec/issues
一個(gè)非常簡單的演示
https://github.com/jsr107/demo
ehcache-jcache – 0.5規(guī)范的實(shí)現(xiàn)
https://github.com/jsr107/ehcache-jcache
參考: Java臨時(shí)緩存API –在Java軟件企業(yè)軟件開發(fā)博客上,由我們的JCG合作伙伴 Markus Eisele 試運(yùn)行早期草案評(píng)審RI 。
翻譯自: https://www.javacodegeeks.com/2012/10/java-temporary-caching-api-test-driving-the-early-draft-review-ri.html
總結(jié)
以上是生活随笔為你收集整理的Java临时缓存API –测试早期草案评审RI的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑主板电池放电的方法电脑电池如何放电
- 下一篇: 电脑怎么建局域网无线投屏电脑如何无线投屏