前景提要
在基类中希望获取到子类中的服务,这该怎么处理啊?能否给个大致方案,有文档或者demo就更好啦!!谢谢!!!
0 悬赏园豆: 15 [待解决问题] 我现在有多个service继承了基类BaseService, 然后每个service处理自己的逻辑,基类BaseService中放一些通用方法, 比如简单的增删改查,, 那我该怎么在基类BaseService调用到不同子类中的服务, 这样我不用每个service都写一遍 相同逻辑的方法。
我现在是在子类中调用基类方法的时候把服务传进来了, 很绝望,其实很不优雅。
public abstract class BaseService<P extends BaseProvider<T>, T extends BaseModel> {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
//protected P provider; public BaseService() { } public T queryById(Long id, BaseProvider provider) { Assert.notNull(id, "ID", new Object[0]); StringBuilder sb = new StringBuilder("jFrame4l:"); String className = this.getClass().getSimpleName().replace("Service", ""); sb.append(className.substring(0, 1).toLowerCase()).append(className.substring(1)); sb.append(":").append(id); // modify 无法将对象直接转为泛型 BaseModel record = (BaseModel) CacheUtil.getCache().get(sb.toString()); if (record == null) { record = provider.queryById(id); } return (T) record; }
}
我这边大概的想法是在基类中 定义了providr,
然后在子类:
@Autowired
public void setProvider(ISysUserProvider provider) {
this.provider = provider;
}
然后让基类的provider = ISysUserProvider服务,但是实际允许的结果是provider为空。
我的问题描述清楚了吗,好绝望, 希望大佬们给点意见或者方向!!!谢谢!!! dubbo spring java spring mvc 自然醒-- | 初学一级 | 园豆: 77
提问于:2019-04-12 17:31 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(2) 0 每个 service 里面的方法,都有相同逻辑,说明只是参数不同,这个不能提取一个公共方法吗 三人乐乐 | 园豆:3245 (老鸟四级) | 2019-04-13 13:14 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 可以采用接口的方式来实现两者之间的数据传递 爱分享的曾大大 | 园豆:217 (菜鸟二级) | 2019-04-21 01:30 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。