最近の更新 (Recent Changes)

2014-03-13
2014-02-14
2012-11-26
2012-09-06
2012-09-05

最新リリース情報

blanco2g (blanco2g-0.6.0)2013-01-09 13:11
blancoAnt (blancoAnt-0.1.8)2009-08-16 21:49
blancoAntDistribution (blancoAntDistribution-0.0.2)2008-11-24 21:05
blancoAntTask (blancoAntTask)2012-05-28 21:08
blancoBatchProcess (blancoBatchProcess-0.6.1)2009-08-09 23:16
blancoBcel (blancoBcel-0.0.2)2006-12-14 21:07
blancoCg (blancoCg-1.5.5)2012-05-28 21:09
blancoCharacterGroup (blancoCharacterGroup-0.2.1)2009-01-20 13:33
blancoCodeGenerator (blancoCodeGenerator2-1.0.2)2006-07-24 22:15
blancoCommons (blancoCommons-1.1.5)2012-05-28 20:50
blancoConcreteSax (blancoConcreteSax-0.0.5)2006-04-15 08:47
blancoConstants (blancoConstants-0.9.3)2009-01-19 13:54
blancoCsv (blancoCsv-1.2.4)2011-02-07 14:30
blancoCsvDotNet (blancoCsvDotNet-1.1.0)2011-02-07 13:38
blancoDb (blancoDbEE-2.2.4)2014-03-12 17:30
blancoDbCommon (blancoDbCommon-0.2.3)2013-01-08 12:00
blancoDbDocListing (blancoDbDocListing-0.0.2)2006-12-12 20:46
blancoDbDotNet (blancoDbDotNet-0.7.4)2011-02-07 15:54
blancoDbMetaData (blancoDbMetaData-0.1.7)2012-05-29 13:14
blancoDbPhp (blancoDbPhp-0.1.3)2009-11-07 07:16
blancoDbTableAccessor (blancoDbTableAccessor-0.0.6)2012-04-30 11:28
blancoDbTest (blancoDbTest-1.3.8)2006-03-21 00:37
blancoDocListing (blancoDocListing-0.1.6)2006-04-28 05:12
blancoEclipseAST2Cg (blancoEclipseAST2Cg-0.5.1)2012-05-28 21:11
blancoEclipseNls (blancoEclipseNls-0.0.2)2009-05-18 18:24
blancoEclipsePluginGen (blancoEclipsePluginGen-0.1.4)2008-11-11 11:36
blancoEncryption (blancoEncryption-0.0.5)2009-05-01 08:30
blancoExcelApi (blancoExcelApi-0.0.6)2012-07-05 15:15
blancoFileManager (blancoFileManager-0.0.1)2014-02-28 16:35
blancoFileManagerPlugin (blanco.plugin.filemanager_0.1.5)2007-03-01 21:58
blancoFindbugsTmx (findbugs.messages.tmx-20080730)2008-07-30 11:27
blancoFindbugsUtil (blancoFindbugsUtil-0.0.1)2008-07-23 14:23
blancoFixedLength (blanco.plugin.fixedlength_0.4.2)2006-10-27 08:38
blancoHashtable (blancoHashtable-0.0.2)2007-04-25 21:07
blancoHtmlFormatter (blancoHtmlFormatter-0.0.3)2009-04-17 23:02
blancoHtmlNormalizer (blancoHtmlNormalizer-0.1.5)2009-08-09 23:17
blancoHtmlParser (blancoHtmlParser-0.1.8)2009-08-09 22:47
blancoIBatis (blancoIBatis-0.0.3)2008-12-11 20:36
blancoJni (blancoJni-0.0.3)2006-12-14 21:09
blancoJsf (blancoJsf-0.2.0)2010-04-15 16:48
blancoJUnit (blancoJUnit-0.0.1)2006-01-14 01:00
blancoLog (blancoLog-0.1.9)2012-05-28 20:52
blancoLogMessage (blancoLogMessage-0.0.9)2012-01-15 21:32
blancoMailCore (blancoMailCore-0.7.2.2)2012-05-29 10:24
blancoManifest (blancoManifest-0.0.1)2008-11-13 14:28
blancoMessage (blancoMessage-0.6.3)2012-05-28 20:55
blancoMeta2Xml (blancoMeta2Xml-0.1.4)2012-05-28 21:20
blancoNLpackGenerator (blancoNLpackGenerator-0.1.29)2009-11-08 23:17
blancoNLpackTmx (pleiades.tmx-1.3.3)2011-08-17 10:55
blancoNLpackXliff (blancoNLpackXliff-0.0.61)2009-03-26 11:41
blancoOmegatUtil (blancoOmegatUtil-0.1.7)2009-09-10 11:38
blancoPdf (blancoPdf-0.2.5)2010-04-14 14:09
blancoPleiadesUtil (blancoPleiadesUtil-0.0.6)2008-11-11 11:48
blancoProperties (blancoProperties-0.0.9)2008-11-11 11:51
blancoReport (blancoReport-0.7.3)2009-03-05 22:06
blancoResourceBundle (blancoResourceBundle-1.3.9)2011-02-07 13:43
blancoRss (blancoRss-0.0.1)2008-01-04 17:56
blancoSed (blancoSed-0.0.1)2008-03-24 22:22
blancoService (blancoService-0.1.2)2010-01-23 12:08
blancoSOAP (blanco.plugin.soap_1.0.9)2008-05-12 09:43
blancoSort (blancoSort-0.0.1)2008-12-24 12:23
blancoSqlEditorPlugin (blanco.plugin.sqleditor_1.0.0)2007-05-17 22:36
blancoSqlFormatter (blancoSqlFormatter-0.1.1)2008-12-04 22:29
blancoStringConverter (blancoStringConverter-0.3.2)2009-01-20 13:52
blancoStringGroup (blancoStringGroup-0.3.2)2009-01-20 14:17
blancoStruts (blanco.plugin.strutsee_0.7.4)2005-11-15 22:18
blancoSvnConf (blancoSvnConf-0.1.1)2009-01-15 11:04
blancoTerasolunaBLogic (blancoTerasolunaBLogic-0.0.2)2008-11-27 12:26
blancoTextConverter (blancoTextConverter-0.0.7)2007-12-27 08:26
blancoTmx (blancoTmx-0.1.1)2009-08-09 23:18
blancoTmxUtil (blancoTmxUtil-0.0.2)2008-11-11 13:38
blancoUnicodeUtil (blancoUnicodeUtil-0.0.1-I201205282044)2012-05-29 10:25
blancoValueObject (blancoValueObject-1.2.3)2012-05-28 20:57
blancoValueObjectDotNet (blancoValueObjectDotNet-0.5.4)2011-02-07 13:51
blancoValueObjectFactory (blancoValueObjectFactory-0.0.2)2007-09-20 20:57
blancoValueObjectPhp (blanco.plugin.valueobjectphp_0.0.5)2006-12-29 08:13
blancoWebCrawler (blancoWebCrawler-0.0.2)2007-10-24 22:33
blancoWsdl (blancoWsdl-0.1.3)2006-12-19 21:56
blancoXliff (blancoXliff-0.2.5)2009-08-09 23:19
blancoXliff2Tmx (blancoXliff2Tmx-0.0.5)2009-08-09 23:20
blancoXliffUtil (blancoXliffUtil-0.1.9)2009-08-09 23:22
blancoXmlBinding (blancoXmlBinding-0.2.5)2012-05-28 21:21
blancoXsd (blancoXsd-0.0.5)2006-05-23 23:49
integrationBuild (Subversive-1.0.0.I20120601-1700-blancofw)2012-06-26 11:10
nlpack.eclipse (juno-I201206281030)2012-06-28 10:44
nlpack.eclipse.checkstyle (checkstyle-I200808081200)2008-08-08 10:52
nlpack.eclipse.egit (org.eclipse.egit_1.0.0-I201109051930)2011-09-05 19:30
nlpack.eclipse.findbugs (findbugs-I200809300900)2008-09-30 10:03
nlpack.eclipse.misc (org.tigris.subversion.subclipse-1.6.18-I201108190940)2011-08-19 09:40
nlpack.eclipse.springide (springide-I200808061200)2008-08-06 11:50
nlpack.eclipse.wtp.wst (wtp-wst-sdk-R-3.1.2-20100211202452-I201008241900)2010-08-24 18:55
oss.net.balusc.jsf.upload (net.balusc.jsf.upload-20111014)2011-10-14 10:00

Wikiガイド(Guide)

サイドバー (Side Bar)

@BlancoCache アノテーション

メソッドに対してキャッシュ機能を追加します。

仕様

適用箇所

  • メソッド

アノテーション要素

要素名 デフォルト 説明
maxperiod long 86400000 キャッシュの最大期間。ミリ秒であらわします。

詳細

  • 同じパラメータでメソッドが呼び出された際に、直近の実行結果をキャッシュから取り出して戻します。
  • キャッシュはソフト参照による実装です。
  • キャッシュのキーとしたいメソッド・パラメータに @BlancoCacheKey アノテーションを付与します。少なくとも 1 つは @BlancoCacheKey が付与されたメソッド・パラメータが必要です。

ソースコード自動生成の例

入力ソースコード: AbstractSampleCache.java

  1. package sample.cache;
  2. import blanco.cache.BlancoCache;
  3. import blanco.cache.BlancoCacheKey;
  4. /**
  5. * メソッド・キャッシュをおこなうソースコードを自動生成するサンプル。
  6. */
  7. public abstract class AbstractSampleCache {
  8. /**
  9. * キャッシュをおこないたい、処理コストの高いメソッド。
  10. *
  11. * @param arg1
  12. * 引数その1
  13. * @param arg2
  14. * 引数その2
  15. * @return メソッドの戻り値。ただしキャッシュにヒットした場合は前回のメソッド呼び出し時の実行結果。
  16. */
  17. @BlancoCache(maxperiod = 1000)
  18. public String methodWithHighCost(@BlancoCacheKey final String arg1, @BlancoCacheKey final String arg2) {
  19. // ここに実際の処理を記述します。
  20. return "戻り値: " + arg1;
  21. }
  22. }

出力ソースコード: SampleCache.java ★以下のソースコードは Blanco2g によって自動生成されたものです。

  1. /*
  2. * このクラスは 'AbstractSampleCache' の具象クラスとして blanco Framework によって自動生成されました。
  3. */
  4. package sample.cache;
  5. import java.util.Map;
  6. import blanco.fw.BlancoGeneratedBy;
  7. /**
  8. * メソッド・キャッシュをおこなうソースコードを自動生成するサンプル。
  9. */
  10. @BlancoGeneratedBy(name = "Blanco2g")
  11. public class SampleCache extends AbstractSampleCache {
  12. /**
  13. * [@BlancoCache] Cache object for method 'methodWithHighCost'.
  14. */
  15. private final Map<String, java.lang.ref.SoftReference<CacheObjectForSampleCacheMethodWithHighCost>> blanco2gCacheMethodmethodWithHighCost = java.util.Collections.synchronizedMap(new java.util.HashMap<java.lang.String, java.lang.ref.SoftReference<CacheObjectForSampleCacheMethodWithHighCost>>(8192));
  16. /**
  17. * キャッシュをおこないたい、処理コストの高いメソッド。
  18. *
  19. * @param arg1 引数その1
  20. * @param arg2 引数その2
  21. * @return メソッドの戻り値。ただしキャッシュにヒットした場合は前回のメソッド呼び出し時の実行結果。
  22. */
  23. public String methodWithHighCost(String arg1, String arg2) {
  24. java.lang.String autoValMethodResult;
  25. {
  26. // [@BlancoCache] Search cache.
  27. final java.lang.ref.SoftReference<CacheObjectForSampleCacheMethodWithHighCost> autoValMethodResultCacheReference = blanco2gCacheMethodmethodWithHighCost.get("" + arg1 + "\t" + arg2 + "");
  28. if (autoValMethodResultCacheReference != null) {
  29. final CacheObjectForSampleCacheMethodWithHighCost autoValCacheLookup = autoValMethodResultCacheReference.get();
  30. if (autoValCacheLookup != null) {
  31. if (Math.abs(System.currentTimeMillis() - autoValCacheLookup.birthMillisec) <= 1000) {
  32. // Hit cache.
  33. return autoValCacheLookup.cachedValue;
  34. }
  35. }
  36. }
  37. }
  38. autoValMethodResult = super.methodWithHighCost(arg1, arg2);
  39. {
  40. // [@BlancoCache] Remember cache.
  41. final CacheObjectForSampleCacheMethodWithHighCost autoValCacheObject = new CacheObjectForSampleCacheMethodWithHighCost();
  42. autoValCacheObject.birthMillisec = System.currentTimeMillis();
  43. autoValCacheObject.cachedValue = autoValMethodResult;
  44. blanco2gCacheMethodmethodWithHighCost.put("" + arg1 + "\t" + arg2 + "", new java.lang.ref.SoftReference<CacheObjectForSampleCacheMethodWithHighCost>(autoValCacheObject));
  45. }
  46. return autoValMethodResult;
  47. }
  48. }
  49. /**
  50. * Cache object for method 'methodWithHighCost'.
  51. */
  52. class CacheObjectForSampleCacheMethodWithHighCost {
  53. /**
  54. * Birth millisec for cache object.
  55. */
  56. long birthMillisec;
  57. /**
  58. * Cached object value.
  59. */
  60. String cachedValue;
  61. }

リンク