MethodInterceptor中的依赖项注入

斯坦·库里林(Stan Kurilin):

我有与依赖的MethodInterceptor。我该如何注射?

在2007年,Bob Lee在这里表示,这种可能性应该包含在下一个版本中,但是我找不到用于此的API。bindInterceptor方法需要实例而不是类。

杰西·威尔逊(Jesse Wilson):

Guice常见问题解答

为了将依赖项注入AOP MethodInterceptor中,请requestInjection()与标准bindInterceptor()调用一起使用

public class NotOnWeekendsModule extends AbstractModule {
  protected void configure() {
    MethodInterceptor interceptor = new WeekendBlocker();
    requestInjection(interceptor);
    bindInterceptor(any(), annotatedWith(NotOnWeekends.class), interceptor);
  }
}

另一种选择是Binder.getProvider在拦截器的构造函数中使用并传递依赖项。

public class NotOnWeekendsModule extends AbstractModule {
  protected void configure() {
     bindInterceptor(any(),
         annotatedWith(NotOnWeekends.class),
         new WeekendBlocker(getProvider(Calendar.class)));
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章