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;
}
Spring Boot学习笔记:项目开发中规范总结的更多相关文章
- Spring Boot学习笔记2——基本使用之最佳实践[z]
前言 在上一篇文章Spring Boot 学习笔记1——初体验之3分钟启动你的Web应用已经对Spring Boot的基本体系与基本使用进行了学习,本文主要目的是更加进一步的来说明对于Spring B ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
- Spring Boot学习笔记---Spring Boot 基础及使用idea搭建项目
最近一段时间一直在学习Spring Boot,刚进的一家公司也正好有用到这个技术.虽然一直在学习,但是还没有好好的总结,今天周末先简单总结一下基础知识,等有时间再慢慢学习总结吧. Spring Boo ...
- Java框架spring Boot学习笔记(二):Hello Spring Boot、以及项目属性配置
新建一个新建一个SpringBootTest工程 新建一个HelloController.java文件 package com.example.demo; import org.springframe ...
- Spring Boot学习笔记——Spring Boot与MyBatis的集成(项目示例)
1.准备数据库环境 # 创建数据库 CREATE DATABASE IF NOT EXISTS zifeiydb DEFAULT CHARSET utf8 COLLATE utf8_general_c ...
- Java框架spring Boot学习笔记(一):开始第一个项目
新建一个项目,选择Spring initializr 修改group和项目名 添加依赖包Web,MongoDB 设置保存位置和工程名 新建一个test的文件 输入代码: package com.xxx ...
- spring boot学习笔记(二)创建spring boot项目
用eclipse(需要用高版本,要不然弄不出来):new →Spring Sarter Project 用IDEA:一般默认 一般默认 入门级的先 剩下的一般默认... 一.项目至少有下面的东西,里面 ...
- Spring Boot 学习笔记1——初体验之3分钟启动你的Web应用[z]
前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文 ...
- Spring Boot 学习笔记1---初体验之3分钟启动你的Web应用
前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文 ...
随机推荐
- 第四章 栈与队列(a)栈接口与实现
- Win7 访问win2008 远程桌面提示:您的凭证不工作
背景: win7 远程桌面连接 服务器 windows 2008 报错,“您的凭证不工作”,但是 xp 系统却可以正常连接. 解决方法: 1.在“运行” 中执行 secpol.msc-->进入本 ...
- Allowing GPU memory growth
By default, TensorFlow maps nearly all of the GPU memory of all GPUs (subject to CUDA_VISIBLE_DEVICE ...
- Mysql 密码相关
MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格 一.密码复杂度 1.密码复杂度配置文件:/etc/my.cnf (CentOS 7下) ...
- 206. Reverse Linked List (List)
Reverse a singly linked list. /** * Definition for singly-linked list. * struct ListNode { * int val ...
- PHP连接数据库(mysql)
前端链接后台,数据库几乎必不可少.所以本文总结了PHP链接数据库的常用方法步骤. 首先 链接数据库:mysqli_connect参数①主机地址 ②mysql用户名③nysql密码④选择连接的数据库⑤端 ...
- Django1.0和2.0中的rest_framework的序列化组件之超链接字段的处理
大家看到这个标题是不是有点懵逼,其实我就是想要一个这样的效果 比如我get一条书籍的数据,在一对多的字段中我们显示一个url,看起来是不是很绚! 下面我们就来实现这么一个东西 首先我们一对多字段中的一 ...
- List<Map<String, String>>和Map<String, List<String>>遍历
public void TestM() { List<Map<String, String>> lm = new ArrayList<>(); Ma ...
- js generator
generator(生成器)是ES6标准引入的新的数据类型.一个generator看上去像一个函数,但可以返回多次. generator跟函数很像,定义如下: function* foo(x) { y ...
- Junit4知识梳理
一.junit官网 junit4:http://junit.org/junit4/ junit5:http://junit.org/junit5/ 二.github junit4: https://g ...