springboot开发笔记(2.用户管理)

部分代码

这里首先给出系统的业务逻辑层service和数据持久层DAO项目代码,代码介绍请看后面内容。

auth_service项目git地址
https://github.com/bjjoy/service_auth

auth_service项目与请求处理层的接口文档部分
https://github.com/bjjoy/service_auth/wiki/auth_service-Interface

1.前言

用户是后台管理系统不可缺少的模块,控制用户的登录以及可以看到的资源(资源通常是菜单、按钮)。为了练习开发,这部分进行一小下系统的设计。用到的技术和框架,在springboot开发笔记(1)中给出。

2.系统结构

这里照搬一下阿里java开发手册里边系统结构,稍作简化修改。就用word凑合画一下。
这里写图片描述

  • 终端显示层(无):html页面,这里没有做,不太会
  • 请求处理层(Web):是controller层,这里独立一个project
  • 业务逻辑层(service): 是service层,这里独立项目(auth_service)
  • 数据持久层(DAO): 与service放在auth_service项目中
  • 数据源: mysql

3. auth_service项目说明

(1) 根据springboot开发笔记(1环境搭建)配置开发环境
(2) 通过idea clone项目到本地
(3) 项目中有auth.sql文件,建好auth数据库,用编辑器打开auth.sql复制sql语句执行生成表和测试数据,或者通过navicat直接运行。
(4) auth_service.postman_collection.json,这是postman软件测试接口用例。下载postman,菜单import->import file导入,可以看到生成的接口数据,根据本地环境修改参数可直接执行。前提是启动auth项目啊。

4. 表结构(具体内容请下载auth.sql导出查看)

(1) 有用的表:主要业务是通过用户获取对应的资源给前端提供展示数据。
- user 用户表,用户基本信息,主要用于登录控制。
- role 角色表,用户对应的角色。
- user_role 用户_角色关联表,一用户可对应多角色。
- menu 资源或菜单表,这里用户存放菜单、按钮。
- role_menu 角色_菜单关联表,一角色对应多菜单。
(2) 根据业务可选表: area(地区)、organization(组织机构)。需要的时候,可能要与user、role等进行关联。这次系统未用到。

5. 多余的话

auth_service主要作用是对用户、角色的增删改查,与数据库进行交互。具体与前端h5页面交互工作交给请求处理层Web。这种结构刚刚有点小小感悟,当然这个项目内容少可能感觉不出来。

  1. 当有多个服务,例如:系统设置(用户、角色、菜单),产品管理,广告管理等,都可以单独做一个service,因为业务逻辑没有交叉,分开维护思路会比较清晰。也可以分到不同的数据库。
  2. 这部分service可以只用内网,不提供外网权限,有数据交叉可以通过http互相调用获取,或者添加冗余字段进行关联。
  3. web层(也可以说是接口层)可以单独对外开放,与h5前端交互。通过http从service获取数据。可以将请求量大的web层单独放到一个project中。如果模块比较少的话,也可以都放在同一个web层。

之后要做的:
1. 先完成 web层project(就叫 joy_bms,joy background management system)的开发,通过http调用auth_service。
2. 通用http模块
3. 统一异常处理
4. 权限控制(shiro、redis),这部分不知道

猜你喜欢

转载自blog.csdn.net/bjjoy2009/article/details/78463558
今日推荐