0
我有以下層次結構:Guice的AOP擴展不工作的超類型
public class ItemImpl extends RepositoryBase<ItemImpl> {
@Inject
ItemImpl(dependency) {
super(dependency)
}
}
public class RepositoryBase<T> extends Base<T> {
public RepositoryBase(dependency) { //Constructor without @Inject
super(dependency)
}
@Intercept <--- Works
public someMethod() {}
}
public class Base<T> {
public Base(dependency){ } //Constructor without @Inject
@Intercept <--- Does not work ***
public someMethod() {}
}
正如你可以在上面看到,攔截不會在層次結構的3級工作。根據Guice的AOP限制,必須使用Guice創建實例,並且子ItemImpl具有@Inject的構造函數,所以我猜想這個孩子的父母應該工作。
爲什麼不在第3級的攔截工作以及爲什麼第2級的攔截工作?這兩個父母都沒有@Inject的構造函數?
你如何獲得'RepositoryBase'和'Base '的實例?我不明白Guice是如何創建這些實例的,因爲它需要'@ Inject'註釋構造函數或零參數構造函數。 –
condit