• Spring Boot学习笔记:项目开发中规范总结


    Spring Boot在企业开发中使用的很广泛,不同的企业有不同的开发规范和标准。但是有些标准都是一致的。

    项目包结构

    以下是一个项目常见的包结构

    以上是一个项目的基本目录结构,不同的项目结构会有差异。在controller service等基础包中又可以根据业务功能进一步进行划分成多个子目录,以电商平台为例,controller层中又可以划分为admin business层。

    一个良好的目录结构可以让项目可读性更好,且具有普适性。车同轨,书同文,规范化,统一化,无论对个人、企业还是行业的进步,都有强烈的推进作用。

    返回数据格式

    目前比较流行的开发方式是前后端分离,后台返回Json数据,前端对Json数据进行解析,然后渲染到前端页面。

    在团队开发的过程中,需要规范返回的数据结构,有一些通用的状态数据,每个后台api接口都要返回。一般情况下,返回到前端的数据必须包含以下信息:状态码、状态信息、数据。

    可以编写包装类来包装返回的数据

    public class CommonData<T> {
        private String message;
        private String messageCode;
        private boolean success = true;
    
        private T data;
    
        public CommonData() {
            super();
        }
    
        public CommonData(T data) {
            super();
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    
    }

     对于枚举类型通常需要转换为键值对的形式(如下),将枚举类型转换为一个Pojo类,然后进行序列化

    public class KeyValue {
        private String key;
        private String value;
    }

     通用数据模型

    一般而言在建Model时,会有一些通用的字段在每个Model中都是需要,可以建一个通用Model,其他Model继承这个通用Model,这些通用字段包括:主键Id、创建时间、更新时间、版本

    import javax.persistence.EntityListeners;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.MappedSuperclass;
    import javax.persistence.Version;
    
    import org.springframework.data.annotation.CreatedDate;
    import org.springframework.data.annotation.LastModifiedDate;
    import org.springframework.data.jpa.domain.support.AuditingEntityListener;
    
    @MappedSuperclass
    @EntityListeners(AuditingEntityListener.class)
    public abstract class BaseModel {
    
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        protected Long id;
    
        @CreatedDate
        private Long createTimestamp;
    
        @LastModifiedDate
        private Long updateTimestamp;
    
        @Version
        private Long version;
    }
  • 相关阅读:
    家用游戏机简史
    九:二叉搜索树与双向链表(二叉搜索树转为有序双向链表)
    诺心(LECAKE) | 氪加
    微博书 | 氪加
    王利芬对话蒲易 ——花店如何成为高端电商?_北京_歇会儿网
    王利芬对话蒲易 ——花店如何成为高端电商?_线下活动报名_优米网
    团队介绍 | 魅动 Magic Motion
    魅动成人用品情趣跳蛋女用自慰器具 魅惑紫【图片 价格 品牌 报价】-京东商城
    最新创业好项目 | 投资项目推荐 | 数据库 | 氪加 特效
    Fancy
  • 原文地址:https://www.cnblogs.com/colin220/p/9104351.html
Copyright © 2020-2023  润新知