|
|
|
|
# 项目开发流程、结构及知识
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
项目架构:
|
|
|
|
|
|
|
|
|
|
demo-api:为后端与后端交互而提供的接口服务。【为服务层和通用处理层提供的接口。】
|
|
|
|
|
|
|
|
|
|
demo-dao:后端与数据库直接交互的地方。【数据持久层】
|
|
|
|
|
|
|
|
|
|
demo-manager:代码管理层。【通用处理层:处理三方平台和三方平台的接口】
|
|
|
|
|
|
|
|
|
|
demo-service:复杂业务层。
|
|
|
|
|
|
|
|
|
|
demo-web:为前端提供接口。【这里从某种角度,就是图中的开放接口】
|
|
|
|
|
|
|
|
|
|
start:启动和测试使用。
|
|
|
|
|
|
|
|
|
|
项目主提结构:【根据阿里巴巴项目目录结构所分析的图形化】
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 用户角色设计
|
|
|
|
|
|
|
|
|
|
采用分层权限模型,来对公司各职务权限和人员进行管理。
|
|
|
|
|
|
|
|
|
|
如下所示:
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
user 对应 用户
|
|
|
|
|
|
|
|
|
|
role 对应 角色
|
|
|
|
|
|
|
|
|
|
permission 对应 权限
|
|
|
|
|
|
|
|
|
|
通过两个关联表来实现分层权限。【分别为:user_role、role_permission】
|
|
|
|
|
|
|
|
|
|
对于权限,我们将其分为操作权限,和访问权限。分别对应为:menu、operation。
|
|
|
|
|
> 对于访问权限和操作权限的表跟权限表,我采用两个表分别进行关联起来。【menu_permission、operation_permission】
|
|
|
|
|
|
|
|
|
|
这样就可以更详细的描述公司人员之间的关系了。
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 前后分离思路
|
|
|
|
|
|
|
|
|
|
> 这里的需要注意的是,token的作用是给系统系别你这账号的权限的。cookie则是自己设置系统是否开启cookie的功能的。如果开启,浏览器就会生成一个cookie给用户,让用户下次登录就不用再次输入账号密码之类的操作。
|
|
|
|
|
|
|
|
|
|
在做前后分离时,首先要考虑自己的所提供给前端,应该是按照什么格式去反馈。
|
|
|
|
|
|
|
|
|
|
即请求体和响应体的格式,不同开发人员所定义的请求结构是不同的。所以要找到适合自己习惯的。
|
|
|
|
|
|
|
|
|
|
下面是自己所觉得合理的请求、响应体:
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{// 登录响应
|
|
|
|
|
"code": 200,
|
|
|
|
|
"msg": "",
|
|
|
|
|
"data": null,
|
|
|
|
|
"token": null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{//请求体
|
|
|
|
|
"token": null,
|
|
|
|
|
"data": {
|
|
|
|
|
....
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Spring boot 事务操作
|
|
|
|
|
|
|
|
|
|
### 注意事项
|
|
|
|
|
|
|
|
|
|
1.
|
|
|
|
|
|
|
|
|
|
同一个类中方法调用,导致@Transactional失效
|
|
|
|
|
开发中避免不了会对同一个类里面的方法调用,比如有一个类Test,它的一个方法A,A再调用本类的方法B(不论方法B是用public还是private修饰),但方法A没有声明注解事务,而B方法有。则外部调用方法A之后,方法B的事务是不会起作用的。这也是经常犯错误的一个地方。
|
|
|
|
|
那为啥会出现这种情况?其实这还是由于使用Spring AOP代理造成的,因为只有当事务方法被当前类以外的代码调用时,才会由Spring生成的代理对象来管理。
|
|
|
|
|
————————————————
|
|
|
|
|
版权声明:本文为CSDN博主「丶炜钦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
|
|
|
|
|
原文链接:https://blog.csdn.net/weixin_44521690/article/details/116797363
|