mall 项目 学习笔记

602 阅读4分钟

mall项目技术栈

mall项目 数据库表

  • ums_admin:后台用户表
  • ums_role:后台用户角色表
  • ums_permission:后台用户权限表
  • ums_admin_role_relation:后台用户和角色关系表,用户与角色是多对多关系
  • ums_role_permission_relation:后台用户角色和权限关系表,角色与权限是多对多关系
  • ums_admin_permission_relation:后台用户和权限关系表(除角色中定义的权限以外的加减权限),加权限是指用户比角色多出的权限,减权限是指用户比角色少的权限

Swagger-UI

  • Swagger-UI是HTML, Javascript, CSS的一个集合,可以动态地根据注解生成在线API文档

  • 常用注解

    • @Api:用于修饰Controller类,生成Controller相关文档信息
    • @ApiOperation:用于修饰Controller类中的方法,生成接口方法相关文档信息
    • @ApiParam:用于修饰接口中的参数,生成接口参数相关文档信息
    • @ApiModelProperty:用于修饰实体类的属性,当实体类是请求参数或返回结果时,直接生成相关文档信息

SpringSecurity

SpringSecurity是一个强大的可高度定制的认证和授权框架,对于Spring应用来说它是一套Web安全标准。SpringSecurity注重于为Java应用提供认证和授权功能,像所有的Spring项目一样,它对自定义需求具有强大的扩展性。

  • JWT JWT是JSON WEB TOKEN的缩写,它是基于 RFC 7519 标准定义的一种可以安全传输的的JSON对象,由于使用了数字签名,所以是可信任和安全的。

JWT的组成 JWT token的格式:header.payload.signature header中用于存放签名的生成算法

{"alg": "HS512"}

payload中用于存放用户名、token的生成时间和过期时

{"sub":"admin","created":1489079981393,"exp":1489684781}

signature为以header和payload生成的签名,一旦header和payload被篡改,验证将失败 //secret为加密算法的密钥

String signature = HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret)

JWT实例 这是一个JWT的字符串

eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImNyZWF0ZWQiOjE1NTY3NzkxMjUzMDksImV4cCI6M时间元素	可出现的字符	有效数值范围MzkyNX0.d-iki0193X0bBOETf2UN3r3PotNIEAV7mzIxxeI5IxFyzzkOZxS0PGfF_SK6wxCv2K8S0cZjMkv6b5bCqc0VBw

Cron表达式

  • Cron表达式

    • Cron表达式是一个字符串,包括6~7个时间元素,在SpringTask中可以用于指定任务的执行时间。
  • Cron的语法格式

    • Seconds Minutes Hours DayofMonth Month DayofWeek
  • Cron格式中每个时间元素的说明

时间元素可出现的字符有效数值范围
Seconds, - * /0-59
Minutes, - * /0-59
Hours, - * /0-23
DayofMonth, - * / ? L W0-31
Month, - * /1-12
DayofWeek, - * / ? L #1-7或SUN-SAT
  • Cron格式中特殊字符说明
字符作用举例
,列出枚举值在Minutes域使用5,10,表示在5分和10分各触发一次
-表示触发范围在Minutes域使用5-10,表示从5分到10分钟每分钟触发一次
*匹配任意值在Minutes域使用*, 表示每分钟都会触发一次
/起始时间开始触发,每隔固定时间触发一次在Minutes域使用5/10,表示5分时触发一次,每10分钟再触 发一次
?在DayofMonth和DayofWeek中,用于匹配任意值在DayofMonth域使用?,表示每天都触发一次
#在DayofMonth中,确定第几个星期几1#3表示第三个星期日
L表示最后在DayofWeek中使用5L,表示在最后一个星期四触发
W表示有效工作日(周一到周五)在DayofMonth使用5W,如果5日是星期六,则将在最近的工作日4日触发一次

常见注解

  • 方法 @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
  • 方法 @ResponseBody
  • 方法参数 @PathVariable("id") Long id
  • 方法参数 @RequestParam(value = "pageSize", defaultValue = "3") Integer pageSize
  • 方法参数 @RequestBody PmsBrand pmsBrand

OSS

阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据。

  • Endpoint访问域名,通过该域名可以访问OSS服务的API,进行文件上传、下载等操作。
  • Bucket存储空间,是存储对象的容器,所有存储对象都必须隶属于某个存储空间。
  • Object对象,对象是 OSS 存储数据的基本单元,也被称为 OSS 的文件。
  • AccessKey访问密钥,指的是访问身份验证中用到的 AccessKeyId 和 AccessKeySecret。

待查询学习问题

  1. BindingResult result 校验
  2. mybatis Example 代码生成
  3. 跨域问题

参考链接: