• 人人快速开发平台开发文档


      最近换了一家公司,项目要求必须用人人快速开发平台写代码,这个平台是可以前后端分离的,刚开始不懂,整个过程痛苦的感觉头发稀少了一大半,后来不停的在网上找关于这方面的资料,下来我就把我最近找的资料分享一下;

      这块有一个官方能给的具体一点的开发文档:https://www.renren.io/guide/#func

    1、配置

    1) 从pom.xml 开始 parent 依赖包(包括springboot的所有依赖及Spring-Mybatis 的整合包,常用工具包);
    2)Java环境依赖   Java-version
    3) 数据库驱动包 MySQL包;
    4) 任务调度依赖 quartz 
    5) 系统权限框架依赖   shiro 框架集成  
    6) 配置文件  
    (1)xml 文件 
    MySQL 数据库和实体的驼峰映射配置
    日志文件输出   Dev(开发环境) test(测试环境) pro(生产环境:俗称正式环境)
    (2)yml 文件(SpringBoot 开始引入的一种json格式的配置文件 功能类似于properties)
    以生产环境为例(DEV)
    首先配置数据库驱动DataSource 分布式数据库设计(这里只使用一个)
    整体yml 文件开始
    配置内置Tomcat 项目名,端口号,最大连接数等;
    激活dev.yml 配置文件;
    格式化输出 jackson
    指定静态资源路径(只针对静态资源,不针对请求)
    配置Mybatis *.xml 文件扫描(可称之为指定路径)

    2、项目开发
    1)创建数据库 -->MySQL 数据库 指定主键ID
    2)modules 文件下创建包名(一般为业务名 如 business )
    (1) 包括entity(实体)  对应MySQL 数据库 和 resource 文件夹下 mapper 下的.xml 文件
    (2) Service (接口类)  对外暴露接口
    (3) implements (接口实现类) 实现接口的方法
    (4) dao (dao层接口) 映射mapper 文件  接口实现接口的形式  去实现Service的 接口在实现类中调用
    3) 控制器(拿出来另说)
    (1) 请求处理、权限管理、业务数据处理
    (2) 基于注解形式 
    @Autowired 注入Service
    @RestController 指定为控制器
    @RequestMapping 或 @PostMapping 或 @GetMapping  指定数据接口路径
    @RequiresPermissions 指定 shiro 权限   根据页面配置的 权限标识
    (3) 返回实体基于 R (实体) 实现了Map接口  这里的 HashMap也是实现了Map 接口  所以整体是实现了Map 接口
    可以扩展  重写  error 方法  或者  OK 方法
    (4) 请求参数封装
    Query  将所有的param 在接受的时候 全部封装在map 集合中  再整体封装在Query中 (期间计算一些分页所需数据)  
    (5) 请求过滤  ShiroConfig  --> shirFilter  所有的请求都会在这个过滤器中过滤   filterMap 中的请求可以在无token时进行直接请求  无论是post还是get  否则会报401 权限不足的错误
    (6) 登录模块
    验证码 随机生成   IOUtils.closeQuietly(out); 输出图片  
    登录的时候验证用户名、密码、和session中的验证码  通过用户名(登录名) 取出 用户密码  再跟用Sha256Hash 加密算法加密的字符串进行比对
    (7) token 所有的请求都会验证token(除被ShiroConfig过滤掉的 ) AuthorizationInterceptor.preHandle(验证token 然后转发请求)  token 会有一个过期时间  12个小时  判断token是用户请求的一个关键点,token在Header 中   不在请求的请求体中
      (8) 重写AuthenticatingFilter 中的方法  isAccessAllowed 这个方法直接废掉  原来是在这里面可以处理直接转发请求  但是引入shiro 后则所有请求都首先经过onAccessDenied,获取请求token,如果token不存在,直接返回401(从header中获取token,如果header中不存在token,则从参数中获取token)  
    4) 前端界面  前后端完全分离的情况  可以说用另外的一个web项目发布所有的 html 文件   来请求后台也是OK的   HTML 作为静态资源存在于项目中   HTML 代码比jsp的优点在于  纯静态  加载速度快   易于优化
    (1)  新闻栏为例
    整体构思: bootstrap 样式 + jqgrid (表格) + Vue.js (对象数据) 让你同学去了解一下VUEJS 的基本语法就OK了
    页面初始化的时候加载JS文件 然后渲染出JqGrid 所绑定的 ID 对应的 Table (有点绕 你理解一下) 
    Vue 通过绑定 指定的参数赋值  指定的click 方法  指定的model 赋值或取值   等
    至此 项目开发就OK了

  • 相关阅读:
    纹理加载和异步
    地板上创建批量小方块
    创建自定义几何体(以立方体为例)
    WTForms
    angular和vue的差别
    vuejs简单介绍特点
    angularjs简单介绍和特点
    flask重要点
    redis
    DRF之认证组件源码解析
  • 原文地址:https://www.cnblogs.com/zmmfeng/p/11239517.html
Copyright © 2020-2023  润新知