我想使用標記方法調用的結果作爲可緩存的註釋。提供時,它將使用緩存提供程序來緩存給定輸入的輸出。例如:我可以註釋一個方法在Spring中可緩存嗎?
@Cacheable
public Bar doExpensiveCalculation(Foo foo) {
Bar bar = jiggeryPokeryWith(foo);
return bar;
}
...
Foo foo1 = new Foo(...);
Foo foo2 = new Foo(...);
Bar bar1 = doExpensiveCalculation(foo1);
Bar bar2 = doExpensiveCalculation(foo2);
Bar bar3 = doExpensiveCalculation(foo1);
// no calculation done on previous line, cached result == bar1
在這個例子的最後緩存將包含
{doExpensiveCalculation(foo1) -> bar1,
doExpensiveCalculation(foo2) -> bar2}
我相信這是可能使用AOP。由於Spring既執行了AOP,也執行了緩存,所以它似乎很適合這種用例。
這樣的功能是否存在?
完美,謝謝。 – Synesso 2010-09-14 11:18:07