Controller封装基础的增删改查BaseController,简化单表业务

背景

配置代码生成器生成出controller、service、mapper,虽然大部分开源框架service与mapper都生成好了,但是controller中还遗留冗余代码,我的想法是能不能把基本的单表CRUD抽出来,提供一个公共的Controller控制器。
利用java语言的特性可以实现,也会存在一些问题。

实现思路

  • 创建父控制器BaseController
  • 一个Model(表实体Model)对应一个service,service作为泛型为BaseController的属性
  • 通过注入的方式注入service属性(表不可能重复,因此service不存在重复注入Spring容器)
  • 提取增删改查Mapping

service接口需要提供通用增删改查接口,对持久层框架没有限制

具体步骤

我是用的是mybatis-plus框架,service泛型需要继承自IService接口,这个接口是MybatisPlus提供的公共service层接口,基本的增删改查方法接口已经提供好了,需要传递一个Model泛型

public abstract class BaseController<S extends IService<M>, M> {
   
   

    @Autowired
    protected S service;
	
}

接着提取出公共的增删改查Mapping

public abstract class BaseController<S extends IService<M>, M extends BaseModel> {
   
   

    @Autowired
    protected S service;

    @ResponseBody
    @GetMapping("/baseQueryById/{id}")
    @ApiOperation(value = "基础功能-通过ID查询单条记录", notes = "基础功能-通过ID查询单条记录", httpMethod = "GET", response = Result.class)
    @ApiOperationSupport(order = 1)
    protected Result baseQueryById(@PathVariable("id") Long id) {
   
   
        if (ObjectUtil.isNull(id) || id <= 0L) {
   
   
            return Result.fail("id不能为空!");
        }
        M m = service.getById(id);
        return Result.
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值