我有MethodInterceptor與依賴關係。我怎麼注入它們?MethodInterceptor中的依賴注入
Here,在2007年,Bob Lee說這種可能性應該包含在下一個版本中,但是我找不到API。 bindInterceptor
方法需要實例而不是類。
我有MethodInterceptor與依賴關係。我怎麼注入它們?MethodInterceptor中的依賴注入
Here,在2007年,Bob Lee說這種可能性應該包含在下一個版本中,但是我找不到API。 bindInterceptor
方法需要實例而不是類。
爲了注入依賴於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)));
}
}
如果'WeekendBlocker'在構造函數中有'@ Inject',我們該怎麼做?理想情況下,我想要一個'newInstance(WeekendBlocker.class)'方法,其中WeekendBlocker之前使用bind(WeekendBlocker.class)綁定。 – joscarsson 2013-06-10 07:46:36
你看到this.http://code.google.com/p/google-guice/issues/detail ID = 88 – 2011-04-16 09:12:08
他們正在談論生根粉樣品here.http://code.google .com/p/google-guice/wiki/AOP#Injecting_Interceptors – 2011-04-16 09:13:14
@ doc_180,我播種它。但是我錯過了'requestInjection'。非常感謝。請將它作爲答案發布。 – 2011-04-16 09:17:43