Pico!

SnipSnapにはIoCコンテナとして、PicoContainerが使用されています。更に、コンテナの実装部分に、AOPっぽくInterceptor処理ができるNanning Aspectsが使われています。

どうやら、データを取得するメソッドなどでキャッシュを実現するためにInterceptorが使われているようです。

public class MissingSnipAspect implements Aspect {
  Pointcut existsPc = P.methodName("exists.*");
  Pointcut createPc = P.methodName("create.*");
  Pointcut removePc = P.methodName("remove.*");

  private ApplicationAwareMap missing;
  private ApplicationAwareMap existing;