【重磅开源】MapleBoot项目开发规范

这篇具有很好参考价值的文章主要介绍了【重磅开源】MapleBoot项目开发规范。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【重磅开源】MapleBoot项目开发规范,笑小枫开源-Maple-Boot,开源,spring boot,后端,node.js

基于SpringBoot+Vue3开发的轻量级快速开发脚手架

【重磅开源】MapleBoot项目开发规范,笑小枫开源-Maple-Boot,开源,spring boot,后端,node.js 【重磅开源】MapleBoot项目开发规范,笑小枫开源-Maple-Boot,开源,spring boot,后端,node.js 【重磅开源】MapleBoot项目开发规范,笑小枫开源-Maple-Boot,开源,spring boot,后端,node.js

🍁项目简介

一个通用的前、后端项目模板

一个快速开发管理系统的项目

一个可以生成SpringBoot+Vue代码的项目

一个持续迭代的开源项目

一个程序员的心血合集

度过严寒,终有春日;挺过酷暑,必有丰收。

GitHub地址

Gitee地址

文档地址(更新中)

演示地址(储备中)

🎈前言

本项目大方向遵循阿里巴巴编码规范,其中有些设计可能因作者习惯原因,有些不一样,这里就不强制一致了。下面罗列一下项目常用到的一些设计规范。

🛢数据库设计规范

数据库暂以单表单库的规则设计,如后期肯定会有分库分表,可在设计前期根据自己需求调整。

表设计

表命名一般由 模块前缀简写'_' + 功能名

例如

  • 系统管理-字典类型 : sys_dict_type
  • 博客中心-文章标题:blog_title
  • 小程序-用户管理:applet_user

一个表中一般需要包含基础字段和部分需要的通用字段,基础字段和通用字段定义规则如下,代码生成工具中有部分直接根据基础字段的编码处理了,如需改动,可对应修改生成工具源码。

基础字段

字段编码 字段名称 字段类型 字段描述
id 主键ID BIGINT(20) 默认自动递增(AUTO_INCREMENT)
create_id 创建人id BIGINT(20) 新增时自动填充
create_time 创建时间 DATETIME 新增时自动填充
update_id 修改人id BIGINT(20) 新增、修改时自动填充
update_time 更新时间 DATETIME 新增、修改时自动填充

常用字段

字段编码 字段名称 字段类型 字段描述
status 状态 TINYINT(1) Java实体中,转为boolean,0:无效;1:生效
remark 备注 VARCHAR(500) 前端以文本域的形式展示填写
sort_num 排序 BIGINT(20) 展示以从小到大正序排序
is_delete 是否删除 TINYINT(1) 默认当作逻辑删除字段,使用Mybatis Plus的@TableLogic注解
version 数据版本号 BIGINT(20) 默认当作乐观锁字段,使用Mybatis Plus的@Version注解

树表字段

生成代码时,修改、编辑不要选择此字段,已默认处理

#if($table.tree)
      parentId: '',
      ancestors: '',
      ancestorsArray: [],
#end
字段编码 字段名称 字段类型 字段描述
parent_id 父节点ID BIGINT(20) 父节点ID,顶级节点,此字段设为0
ancestors 祖级列表 VARCHAR(255) 祖级列表,方便页面回显,数据格式如[100,101,201]

🚀后端设计规范

模块定义

可根据实际业务拆分模块,建议同一个功能模块拆分成一个,例如用户中心模块、博客管理模块、代码生成模块等。

其中比较特殊的有一下两个模块

  • 通用工具类模块:maple-admin-common
  • Rest统一接口模块:maple-admin-rest

其中maple-admin-rest为统一接口提供模块,只做差异化接口提供,尽量不做业务处理,然后统一调用功能模块的Service接口。

接口模块定义

这里以系统模块为例

maple-admin-system             ------------ 模块名称
├─src
│  └─main
│      ├─java
│      │  └─com.maple.system   ------------ 模块目录
│      │     ├─bean            ------------ 实体类
│      │     ├─mapper          ------------ mapper类
│      │     ├─service         ------------ service接口类
│      │     │  └─impl         ------------ service接口实现类
│      │     └─vo
│      │        ├─model        ------------ 对外实体Model类
│      │        └─query        ------------ 请求参数对象
│      └─resources
│          └─mapper            ------------ mapper的xml文件
└─pom.xml                      ------------ maven配置文件

Rest接口模块定义

maple-admin-rest                   ----------- 模块名称
├─src
│  └─main
│      ├─java
│      │  └─com.maple.rest         ----------- 模块目录
│      │     ├─aop                 ----------- AOP切面配置
│      │     ├─config              ----------- 启动项配置
│      │     ├─controller          ----------- Controller接口
│      │     │  ├─common           ----------- 通用接口
│      │     │  └─manage           ----------- 管理模块接口
│      │     │     ├─system        ----------- 管理模块-系统设置接口
│      │     │     ├─tool          ----------- 管理模块-工具类接口
│      │     │     └─usc           ----------- 管理模块-系统用户接口
│      │     ├─job                 ----------- 定时任务
│      │     └─Application.java    ----------- 项目启动类
│      └─resources                 ----------- 资源目录
│          └─WEB-INF
│              └─resources
└─pom.xml                          ----------- Maven配置文件

对象字段定义

字段定义和数据库字段对应关系如下

数据库字段 Java对象字段
tinyint(1) Boolean
int, tinyint, smallint, mediumint Integer
char, varchar, nvarchar, varchar2, tinytext, text, mediumtext, longtext String
datetime, time, date, timestamp Date
bigint Long
float Float
double Double
decimal BigDecimal
其它类型 暂未定义

生成代码时可以配置是否集成基础字段对象com.maple.common.config.bean.BaseEntity

其中BaseEntity对象包含上述数据库设计中的基础字段

@Data
public class BaseEntity implements Serializable {

    @TableId(type = IdType.AUTO)
    protected Long id;

    @ApiModelProperty("创建人id")
    @TableField(value = "create_id", fill = FieldFill.INSERT)
    private Long createId;

    @ApiModelProperty("创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty("更新人id")
    @TableField(value = "update_id", fill = FieldFill.INSERT_UPDATE)
    private Long updateId;

    @ApiModelProperty("更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}

实体类转换( 必须 )

这里的bean为数据库一一对应的对象,默认规则设计上不做任何侵入,只在接口模块内部使用。

对外部接口提供数据时,统一转换为Model对象。

转换工具类:com.maple.common.util.TransformUtils

使用方式:

    /**
     * 单个对象之间转换
     */
    public static <T> T map(Object source, Class<T> destinationClass) {
        if (source == null) {
            return null;
        }
        return MAPPER.map(source, destinationClass);
    }

    /**
     * 集合对象之间转换
     */
    public static <T> List<T> mapList(Collection<?> sourceList, Class<T> destinationClass) {
        List<T> destinationList = new ArrayList<>();
        for (Object sourceObject : sourceList) {
            destinationList.add(MAPPER.map(sourceObject, destinationClass));
        }
        return destinationList;
    }


	// 使用方式
	UserModel model = TransformUtils.map(user, UserModel.class);
	List<UserModel> modelList = TransformUtils.mapList(user, UserModel.class);

🛸前端设计规范

前端就不多说了,本身也是用了现有的框架,详细见框架本身源码

管理端框架:vueNextAdmin

maple-web文章来源地址https://www.toymoban.com/news/detail-860095.html

maple-web
├─public             ---------- 公开文件
└─src                           
    ├─api            ---------- 接口地址
    │  └─system      ---------- 系统管理接口
    ├─assets         ---------- 应用程序使用的静态资源文件
    ├─components     ---------- 应用程序的公共组件
    ├─directive      ---------- Vue的自定义指令
    ├─i18n           ---------- 放置国际化多语言配置文件
    ├─layout         ---------- 项目的布局.vue模板
    ├─router         ---------- 应用程序的路由配置
    ├─stores         ---------- 应用程序的状态管理工具
    ├─theme          ---------- 应用程序的主题配置
    ├─types          ---------- 数据类型
    ├─utils          ---------- 自己封装的一些全局性的js功能文件
    └─views          ---------- 应用程序的页面

到了这里,关于【重磅开源】MapleBoot项目开发规范的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索 Seata 项目开源开发之旅

    Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。在今年的开源之夏活动中,我加入了 Apache Seata (Incubator) 社区,完成了开源之夏的课题,并从此一直积极参与社区。我有幸在云栖大会-开发者秀场上分享了我的开发者经

    2024年02月03日
    浏览(12)
  • Spring+SpringMVC+MyBatis整合项目开发(配有项目,已开源)

    🍰 个人主页:__Aurora__ 🍞 如果文章有什么需要改进的地方还请各位大佬斧正。 🍉如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️ 🔥最近在学SSM框架,本文是根据b站【黑马程序员 ssm框架 2021 版】整理。 🔥视频链接:https://www.bilibili.com/video/BV1WZ4y1P7Bp?spm_id_from=3

    2023年04月08日
    浏览(14)
  • github gitee go开发 热门开源项目

    (1)尽可能的使用:=去初始化声明一个变量(在函数内部) (2)尽可能的使用字符代替字符串 (3)尽可能的使用切片代替数组 (4)尽可能的使用数组和切片代替映射 (5)如果只想获取切片中某项值,不需要值的索引,尽可能的使用for range去遍历切片,这比必须查询切片

    2024年02月10日
    浏览(12)
  • 【开源】SpringBoot框架开发企业项目合同信息系统

    基于JAVA+Vue+SpringBoot+MySQL的企业项目合同信息系统,包含了合同审批模块、合同签订模块、合同预定模块和合同数据可视化模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,企业项目合同信息系统

    2024年02月20日
    浏览(11)
  • 5个开源的Java项目快速开发脚手架

    概览  : Guns pig RuoYi Jeecg-boot iBase4J 推荐指数  :⭐⭐⭐⭐⭐ 简介 采用主流框架  : 基于 Spring Boot2.0+版本开发,并且支持 Spring Cloud Alibaba 微服务。 功能齐全  :包含系统管理,代码生成,多数据库适配,SSO 单点登录,工作流,短信,邮件发送,OAuth2 登录,任务调度,持续

    2024年02月10日
    浏览(12)
  • 推荐一个.Ner Core开发的配置中心开源项目

    当你把单体应用改造为微服务架构,相应的配置文件,也会被分割,被分散到各个节点。这个时候就会产生一个问题,配置信息是分散的、冗余的,变成不好维护管理。这个时候我们就需要把配置信息独立出来,成立一个配置中心。 这是一个基于.Net Core开发的,轻量级配置中

    2024年02月04日
    浏览(19)
  • 6个顶级SpringCloud微服务开源项目,企业开发必备

    今天介绍六款比较热门的SpringCloud微服务项目,感兴趣的可以clone下来研究一下,相信对你学习微服务架构很有帮助。 介绍 Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个

    2024年02月03日
    浏览(14)
  • 基于.Net开发的数据库导入导出的开源项目

    在项目开发过程中,我们经常碰到从数据库导入导出的需求,虽然这样的功能不是很复杂,但是往往我们都会碰到一些问题。 比如导入的Excel格式问题、Excetl中图片导入问题,导出的需求为了方便客户查看,会面临更多个性化的需求,为了满足这些需求,开发还是比较繁琐的

    2024年02月02日
    浏览(25)
  • 开源游戏区块链项目分享:Unity开发的独立区块链

    ❗️ 千万别被误导,上图内容虽然都在项目中可寻,但与目前区块链的业务代码关联不大,仅供宣传作用(总得放些图看着好看)。之所以有以上内容是项目有个目标功能是希望每个用户在区块链上都有一个独一无二的AI虚拟角色,目前角色出来了,但AI还没有训练😂,也没有

    2024年02月09日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包