一、前言
快速地从 JavaWeb 到 SpringBoot
企业级开发,从代码规范性讲起
参考
《阿里巴巴Java开发规范手册》
根据众多项目的开发经验,针对ITAEM软件开发团队大一新成员的考核作品的代码问题进行分析
为以后框架、web组件的学习打基础,以便适应其使用逻辑、思想
——不同框架针对性地提供web开发不同层次的帮助
如主流框架的应用:
JPA
用于 Entity 层(+SpringData
后, + dao 层)
MyBatis
/Hibernate
作用于 Dao 层
Swagger
用于 Controller 层
Spring
主要作用于 Service 层
SpringMVC
/Struts2
主要作用于 Controller 层
等等
文章末尾预备一个 JavaWeb 层次的项目 demo
二、基本代码层次及其主要内容
1、实体层:
entity / model / pojo( Plain Ordinary Java Objects => JavaBean)
基本是根据数据库表来建立的,为 dao 层 CRUD 做准备
2、数据库层:
dao / Repository (SpringBoot JPA 中官方推荐)
操作数据库之 CRUD
3、事务层:
service (事务一致性)
调用多次dao层操作,中间有意外撤回操作,确保事务一致性:dao层每次操作都会直接修改数据库
何谓事务一致性:支付转账:一减一增(dao),中间有差错(断电),立刻撤回
4、控制层:
controller(接口暴露)
返回值,
JSON
5、其他:
util 工具类(封装通用方法:返回值、OSS 对象储存等第三方技术)
Config 类(配置跨域请求)
三、其他规范
1、包名:
比如个人网站为 www.cun.com
,则 entity 实体层包名为如下格式:
com.cun.entity
,按域名倒着写
dao 数据库操作层则为 www.dao.com
等等
四、数据库
1、表名:
①小型系统:t_user
②大型系统:如在支付模块,用户表名pay_user
2、字段名:
① Linux
环境下是会识别大小写的,而 window
环境下是不会识别大小写
为了写通用,不出现不规范的的字段名(window 下:userName -> username)
userId -> user_id (SpringBoot JPA 字段生成的字段就是这种模式,没得商量,xx_xx,不允许 xx_Xx)
五、交互(ajax + json)
很多同学现在使用的是 JSP 显示数据,
这种模式在前后端分离的时代略显过时
也有不过时的思想,如 Python web 开发的 Django 模板引擎数据渲染,SpringBoot中的 thymeleaf,
与 Vue 、Angular 中很多指令速途同归 :如 JSP 的 forEach
分别对应 v-for
、 ng-repeat
总之,就一句话,多学点,不亏。
页面标签、数据更新,使用的过渡顺序:
jQuery dom -> React 虚拟 dom ->Vue 数据驱动 dom
六、小型案例
代码层次
代码链接:https://github.com/larger5/ITAEM1.git
数据库
返回给前端的 json 数据