⼈⼈快速开发平台开发⽂档纯个⼈⼿撸跟官⽹的不⼀样
1、配置
1) 从l 开始 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 项⽬名,端⼝号,最⼤连接数等;
激活l 配置⽂件;
格式化输出 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了

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。