一种基于抽象类的思想
来源:互联网 发布:田单复国知乎 编辑:程序博客网 时间:2024/06/03 18:36
如果CRUD是很多Service要做的,那么可以抽象出一个BaseService<T>抽象父类,里面去实现一些CRUD方法(非抽象方法)。但会有一个问题,就是里面的DAO(Mapper)是不一样的,虽然抽象类能用注入(因为子类创建对象时,父类的成员变量会被初始化),但类型各不相同,比如User或Order,那怎么办?
解决方法:在抽象父类中提供一个获取DAO(Mapper)的抽象方法(比如getMapper()),让子类各自实现。那么抽象父类的CRUD方法中就可以使用getMapper().xxx()完成CRUD操作。
解决方法2:spring4已经支持泛型注入了,即只要你在抽象父类中使用
@Autowired
private Mapper<T> mapper;就会根据子类去创建对应的mapper。当然mapper接口还得写。只不过在service子类中不用再去注入了,父类中已经注入。
推荐用第二种方法。
---------------------------------------------------------------------------------------------------------------
如果这个T t 在做增和改时需要设置时间,那么t.setXXX(),默认是没有的,怎么办?
解决方法:BaseService<T extends BasePojo>,BasePojo就是那种实体类中抽出一些公共部分的抽象类。一般实体类都会继承BasePojo
阅读全文
0 0
- 一种基于抽象类的思想
- 一种基于FPGA有限状态机思想的RS485 C底层驱动
- 一种基于平均思想的任务分配算法
- 注册码实现思想的一种
- 一种基于简单递归思想的易操控xml解析封装(C++)
- 关于bridge 模式思想方法和抽象类的用法
- JAVA基础篇 ,类 对象,,封装 , 继承 的抽象思想
- 举例说明java面向对象思想的体现:抽象类、接口
- 接口是一种特殊类型的抽象类
- 音视频同步系列文章之----一种基于RTP协议的客户端媒体流Buffer管理思想(1)
- 音视频同步系列文章之----一种基于RTP协议的客户端媒体流Buffer管理思想(2)
- 作者自述CSE语言设计思想(六)----基于HTML5跨越NativeApp与WebApp的一种途径
- 一种效率极高的ASP分页思想
- 一种效率极高的ASP分页思想
- 一种关于一句话木马的更新思想
- 一种关于一句话木马的更新思想
- 一种非常精妙的设计思想
- IoVC,一种新的编程思想
- vmware虚拟机克隆
- POJ 1837
- ubuntu更新国内源
- Spring boot之使用Druid并配置SQL监控
- 使用两个队列实现一个栈
- 一种基于抽象类的思想
- Linux内核Makefile文件(翻译自内核手册)
- win10中英文无法切换
- spring boot -- 导入源码到eclipse
- Codeforces Round #382 (Div. 1) A. Tennis Championship
- 51Nod 1596 搬货物
- Unity RPG游戏角色残影效果如何实现
- zabbix
- ios-CGRectGet的使用