springboot提高编辑Controller和Service层速度和规范小技巧

简介: springboot提高编辑Controller和Service层速度和规范小技巧

一、编写BaseController减少Controller返回时逻辑判断

package com.xxxxxxx.controller;
 
import com.xxxxxx.utils.AjaxResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
/**
 * web层通用数据处理
 *
 * @author Minos
 */
public class BaseController
{
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
 
 
    /**
     * 响应返回结果
     *
     * @param rows 影响行数
     * @return 操作结果
     */
    protected AjaxResult toAjax(int rows)
    {
        return rows > 0 ? AjaxResult.success("返回成功") : AjaxResult.error("返回失败");
    }
 
    /**
     * 响应返回结果
     *
     * @param rows 影响行数
     * @param msg 返回消息
     * @return 操作结果
     */
    protected AjaxResult toAjax(int rows,String msg)
    {
        return rows > 0 ? success(msg+"成功") : error(msg+"失败");
    }
    /**
     * 响应返回结果     *
     * @param rows 影响行数
     * @param successmsg 成功消息
     * @param errormsg 失败消息
     * @return 操作结果
     */
    protected AjaxResult toAjax(int rows,String successmsg,String errormsg)
    {
        return rows > 0 ? success(successmsg) : error(errormsg);
    }
    /**
     * 对象返回
     * @param object
     * @return
     */
    protected AjaxResult toAjax(Object object)
    {
        return object!=null ? AjaxResult.success("返回成功",object) : error("返回失败");
    }
    /**
     * 响应返回结果
     *
     * @param result 结果
     * @return 操作结果
     */
    protected AjaxResult toAjax(boolean result)
    {
        return result ? success("返回成功") : error("返回失败");
    }
    /**
     * 响应返回结果
     *
     * @param result 结果
     * @return 操作结果
     */
    protected AjaxResult toAjax(boolean result,String msg)
    {
        return result ? success(msg+"成功") : error(msg+"失败");
    }
    /**
     * 响应返回结果
     *
     * @param result 结果
     * @param successmsg 成功消息
     * @param errormsg  失败消息
     * @return 操作结果
     */
    protected AjaxResult toAjax(boolean result,String successmsg,String errormsg)
    {
        return result ? success(successmsg) : error(errormsg);
    }
 
 
    /**
     * 返回成功
     */
    public AjaxResult success()
    {
        return AjaxResult.success();
    }
 
    /**
     * 返回失败消息
     */
    public AjaxResult error()
    {
        return AjaxResult.error();
    }
 
    /**
     * 返回成功消息
     */
    public AjaxResult success(String message)
    {
        return AjaxResult.success(message);
    }
 
    /**
     * 返回失败消息
     */
    public AjaxResult error(String message)
    {
        return AjaxResult.error(message);
    }
 
 
}

二、编写BaseService,其他Service继承BaseService

package com.xxxxx.service;
 
import java.util.List;
 
/**
 * @Author xxxx
 * @param <E>
 */
public interface BaseService<E extends Object> {
    /**
     * 添加
     */
    Integer add( E e);
    /**
     * 修改
     */
    Integer edit(E e);
    /**
     * 删除
     */
    Integer delete(Long id);
    /**
     * 查询列表
     */
    List<E> selectList(E e);
    /**
     * 根据ID查询单个
     */
    E selectById(Long id);
}
package com.xxxx.utils;
 
import java.util.HashMap;
 
 
/**
 * 操作消息提醒
 *
 * @author lets
 */
public class AjaxResult extends HashMap<String, Object>
{
    private static final long serialVersionUID = 1L;
 
    /** 状态码 */
    public static final String CODE_TAG = "code";
 
    /** 返回内容 */
    public static final String MSG_TAG = "msg";
 
    /** 数据对象 */
    public static final String DATA_TAG = "data";
 
    /**
     * 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。
     */
    public AjaxResult()
    {
    }
 
    /**
     * 初始化一个新创建的 AjaxResult 对象
     *
     * @param code 状态码
     * @param msg 返回内容
     */
    public AjaxResult(int code, String msg)
    {
        super.put(CODE_TAG, code);
        super.put(MSG_TAG, msg);
    }
 
    /**
     * 初始化一个新创建的 AjaxResult 对象
     *
     * @param code 状态码
     * @param msg 返回内容
     * @param data 数据对象
     */
    public AjaxResult(int code, String msg, Object data)
    {
        super.put(CODE_TAG, code);
        super.put(MSG_TAG, msg);
        if (data!=null)
        {
            super.put(DATA_TAG, data);
        }
    }
 
    /**
     * 返回成功消息
     *
     * @return 成功消息
     */
    public static AjaxResult success()
    {
        return AjaxResult.success("操作成功");
    }
 
    /**
     * 返回成功数据
     *
     * @return 成功消息
     */
    public static AjaxResult success(Object data)
    {
        return AjaxResult.success("操作成功", data);
    }
 
    /**
     * 返回成功消息
     *
     * @param msg 返回内容
     * @return 成功消息
     */
    public static AjaxResult success(String msg)
    {
        return AjaxResult.success(msg, null);
    }
 
    /**
     * 返回成功消息
     *
     * @param msg 返回内容
     * @param data 数据对象
     * @return 成功消息
     */
    public static AjaxResult success(String msg, Object data)
    {
        return new AjaxResult(200, msg, data);
    }
 
    /**
     * 返回错误消息
     *
     * @return
     */
    public static AjaxResult error()
    {
        return AjaxResult.error("操作失败");
    }
 
    /**
     * 返回错误消息
     *
     * @param msg 返回内容
     * @return 警告消息
     */
    public static AjaxResult error(String msg)
    {
        return AjaxResult.error(msg, null);
    }
 
    /**
     * 返回错误消息
     *
     * @param msg 返回内容
     * @param data 数据对象
     * @return 警告消息
     */
    public static AjaxResult error(String msg, Object data)
    {
        return new AjaxResult(900, msg, data);
    }
 
    /**
     * 返回错误消息
     *
     * @param code 状态码
     * @param msg 返回内容
     * @return 警告消息
     */
    public static AjaxResult error(int code, String msg)
    {
        return new AjaxResult(code, msg, null);
    }
}

根据需求编写baseEnity和BaseMapper

相关文章
|
6月前
|
Java API 微服务
【Spring Boot系列】通过OpenAPI规范构建微服务服务接口
【4月更文挑战第5天】通过OpenAPI接口构建Spring Boot服务RestAPI接口
238 0
|
6月前
|
Java 测试技术
SpringBoot整合单元测试&&关于SpringBoot单元测试找不到Mapper和Service报java.lang.NullPointerException的错误
SpringBoot整合单元测试&&关于SpringBoot单元测试找不到Mapper和Service报java.lang.NullPointerException的错误
159 0
|
1月前
|
Java Spring 容器
Springboot3.2.1搞定了类Service和bean注解同名同类型问题修复
这篇文章讨论了在Spring Boot 3.2.1版本中,同名同类型的bean和@Service注解类之间冲突的问题得到了解决,之前版本中同名bean会相互覆盖,但不会在启动时报错,而在配置文件中设置`spring.main.allow-bean-definition-overriding=true`可以解决这个问题。
83 0
Springboot3.2.1搞定了类Service和bean注解同名同类型问题修复
|
21天前
|
缓存 Java 程序员
Java|SpringBoot 项目开发时,让 FreeMarker 文件编辑后自动更新
在开发过程中,FreeMarker 文件编辑后,每次都需要重启应用才能看到效果,效率非常低下。通过一些配置后,可以让它们免重启自动更新。
23 0
|
3月前
|
前端开发 小程序 Java
【规范】SpringBoot接口返回结果及异常统一处理,这样封装才优雅
本文详细介绍了如何在SpringBoot项目中统一处理接口返回结果及全局异常。首先,通过封装`ResponseResult`类,实现了接口返回结果的规范化,包括状态码、状态信息、返回信息和数据等字段,提供了多种成功和失败的返回方法。其次,利用`@RestControllerAdvice`和`@ExceptionHandler`注解配置全局异常处理,捕获并友好地处理各种异常信息。
1101 0
【规范】SpringBoot接口返回结果及异常统一处理,这样封装才优雅
|
3月前
|
Java Windows
SpringBoot Windows 自启动 - 通过 Windows Service 服务实现
SpringBoot Windows 自启动 - 通过 Windows Service 服务实现
113 2
|
3月前
|
前端开发 JavaScript Java
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
|
3月前
|
Java Linux C++
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑
|
6月前
|
SQL Java 关系型数据库
这款工具让SpringBoot不再需要Controller、Service、DAO、Mapper
这款工具让SpringBoot不再需要Controller、Service、DAO、Mapper
62 1
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
143 1