我已经对此方面进行了编码:
@Aspect
public class LoggingCacheAspect {
@Pointcut("call * javax.cache.integration.CacheLoader.load(*)")
void cacheLoadCalls() {};
@Before("cacheLoadCalls")
public void beforeCacheCalls() {}
}
此外,我正在使用CDI,并期待找出如何将Bean注入该方面。
我想添加@Inject
注释是不够的。
答案 0 :(得分:1)
您需要使用拦截器来代替方面 这是一个示例:
@InterceptorBinding
@Target({TYPE, METHOD })
@Retention(RUNTIME)
public @interface CacheLog{
}
@Interceptor
@CacheLog
public class CacheLogInterceptor implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
private YourBean yourBean;
@AroundInvoke
public Object cacheLogMethodCall(InvocationContext ctx) throws Exception {
//@Before
yourBean.method();
...
return ctx.proceed();
}
}
@CacheLog
public void cacheLoadCalls() {
...
...
}