public class ModelController<T extends ModelService, M extends Model> extends BaseController implements IModelController {
@Inject //我现在想用Inject直接注入 但是发现注入的是 实现类的父类 ModelService
protected T service;
private Class<M> modelClazz;
public ModelController() {
//之前是通过得到继承类上的泛型参数获取到service的class 然后用aop注入service 这样是没问题的
//service = Aop.get((Class<T>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
}
}
//这个是子类代码
public class MenuController extends ModelController<MenuService, Menu> {
@AuthorityKey("view")
public void menuTree() {
//这个时候 我想注入menuService 得到的确实ModelService 有点搞不明白
renderResult(service.menuTree(getKv()));
}
}小弟学艺不精,有没有大哥指教下
用 Aop.get 就挺好, 因为你这个本身就是在父类中存放 service , 子类中是不需要增加代码的