00:00
好嘞啊,这个有一句我经常说的话,这个送君千里,终须一别啊,我们现在呢,这个整个这个。我们就都走完了哈。嗯嗯,在这我们把刚才这个再补充一下哈,就是我们。呃,启动的这个命令。关于启动命令,启动命令这呢,如果是我们这个,嗯,Web ui.y这个包啊,需要放到。他们的webps这个目录下。然后呢,去启动tomcat。那么这个命令呢,它就应该是我们这个叫。OBT下边。我这骚福特。
01:06
有点卡。哎,这个我们CPU你看就一个CPU啊,它同时要运行这么多东西。呃,这边B下边。Start up。哎呀,这个太慢了,这个很好,心疼CPU啊,啊,我们为了自己省钱用了,只用了一个CPU啊,给孩子累坏了,Start up。现在就不起了哈,因为他已经起来了哈,你就把这个命令给复制一下。哎,然后呢,这些个微服。咱们来一个黑腿哈。哎呀,这个黑里边没有。
02:02
嗯。太卡了,我们进入到OT下边这个package。Java上架。哎。嗯。这样哈。我把这个复制了一下。Java杠架来,当然说你要是想这个这我们补充完整哈,这个应该是在我们OBD下边这个packages。这样去运行啊,这是我们启动各个微服务的这个命令。启动起来以后呢,就通过浏览器去访问啊,进行这个测试就好了。
03:00
哎,最后呢,我们来做一个总结啊,说我们这个项目呢,咱们用到了哪些个技术。哎,这个应该叫我们说,就像拍电视一样啊,终于到大结局了。咱们来一个大一点的字。到下一页咱们来一个这样吧,咱们呃,另外创建一个这个笔记吧。咱们也有点儿仪式感。
04:01
呃,我们这个项目呢,咱们分两个大的部分啊,一个是我们这个单一架构部分,就是我们的这个后台管理系统,一个呢,是我们这个前台的会员系统。啊,在这个后台管理系统呢,我们用到了这样一些个技术,或者说咱们先说一下,咱们分几个大块哈。呃,首先呢,是我们这个项目介绍啊,这部分没有什么技术,咱们在这儿就不回顾了,哎,咱们第一大块呢,是我们这个叫。搭建环境。搭建环境里边我们用到了这样一个技术啊,我们是使用这个ma作为一个项目底层。构建管理和依赖管理的工具。然后呢,我们使用了这个。Mac作为我们这个外部层的框架。
05:04
哎,他负责处理请求啊,负责请求的转发重新项啊,啊负责接收请求参数啊,哎,负责显示页面啊,对吧,这些跟浏览器打交道的就都是他。然后在这里边呢,其实它处理的请求是有两种啊,有普通的请求,有我们AX请求。啊,普通请求呢。普通请求是这样的啊,就是说我们这个。呃,关键它的区别就在于哈,它返回的结果,返回的响应。哎,通常为一个页面,而我们AJX请请求它返回的响应器,哎,它通常呢为一个结算数据,所以说呢,我们在做异常预设的时候啊。针对他们两个东西啊,它这个处理的方式是不一样的。
06:03
啊,返回的结果啊,提示的方式是不一样的。再然后呢?我们是使用作为持久化层框架。哎。然后呢,我们还用了一个插件。买贝蒂斯的配置helper插件。实现这个数据的分示这个数据呢,其实我们用到的话,这个我们的这个的数据。有我们这个角色的数据。只不过我们耳朵面这。只不过我们admin这儿呢,它是用这个,呃。呃,普通请求的方式啊,去处理的这边呢,我们是用A请求方式去处理。
07:00
嗯。呃,在接下来呢,我们是使用的这个spring。它呢去作为我们的整个项目的一个容器啊,使用spring提供的这个容器去管理我们项目中的组件啊组件什么是组件呢?就是我们像什么什么handler呀。什么什么service呀啊,什么什么呀啊,甚至于说什么什么的intercept呀。啊,像我们这个exception的呀。哎,就是像这些东西啊,他们就都属于我们叫组件啊,啊,都是由我们的这个spring啊,它的LC容器去管理我们这样的一些个组件。如果我们项目呢,组件化程度越高,模块化程度越高,那么它就越。
08:02
贴近,我们叫高内聚低耦合啊,这是我们项目开发非常重要的一个理念。呃,然后呢,从这个前端的来说哈,前端我们使用的这样一些个技术,哎,我们用到了这个。呃,Bos啊。哎,作为一个前端的样式框架,这个我们没有特别细讲啊,但是我们这个项目它确实是用到了这个东西。然后呢,我们使用了一个粒。哎,作为一个我们这个弹层的一个组件。哎,然后呢,我们使用了一个。嗯。在页面上。去显示我们这个叫。
09:00
啊,在页面上啊,去显示我们。呃,树形结构。哎,大体上我们搭建环境哈,对环境这边还有一个东西哈,其实我们做了一个异常的映射啊。我们借助spring mvc提供的异常映射的这个机制。啊,实现了我们这个项目中错误消息的统一的管理。啊,这里边儿呢,我们有。基于注解的有基于X毛的啊,为什么要区分这两个呢?注解的你用注request mapping这个注解处理的请求啊,他如果抛异常的话就走,我们基于注解的这个异常映射你。Will controller这个请求抛异常啊,然后呢,就会走我们这个GX毛的这个异常的处理啊,所以说这个注解的归注解X,毛的归X。
10:02
甚至于说呢,我们通过对请求的类型进行判断啊,我们还做到了普通请求和Ajax请求的兼容。嗯,准确的说哈,请求消息头。里边这个信息啊,通过对他的信息的判断,哎,去这个在处理异常。啊,再给出异常处理结果时。实现了普通请求和Ajax请求的兼容。哎。啊,这是这都是这个相关的哈,这些属于我们搭搭环境这部分我们提到的,那么搭环境这部分完成了以后呢,这边我们下一个是说我们的管理员登录哈。
11:08
是这个。当然说,虽然说后边被我们security的那个带颜值的加密替换掉了啊,但是在这儿呢,我们确实是用了一下。然后呢,我们使用了。一个自定义的拦截器去检查了我们登录的一个状态,不登录的话就不让你去啊,那这个东西呢,虽然说最后也被。的替代了,甚至说整个这个登录哈,最后都是由spring security来做登录的,但是这些呢,是对我们前面工知识的一个巩固和一个呃,强化。呃,再往下呢,就是我们这个管理员的这个维护啊,管理员数据的这个维护。这里边儿我们做的这个功能呢,有这个分页啊,有这个就是增加检查。
12:06
哎,这个分页呢,我们就是使用了这个MY的配置helper这个插件啊,实现了这个分页。嗯。然后页面上呢,我们用了一个啊去实现的这个页码的显示啊,带数字的这个的显示。哎,在页面上使用这个配置啊,实现了一个数字的这个页码。然后呢,在数据库表中,我们是给我们这个log account这个字段啊,去添加了一个约束啊,在。嗯。保存了重复的log时。
13:00
哎,会触发这个异常,哎,从而这个保证我们。登录账号的唯一。哎,这是管理员维护。其实在这儿呢,我们还做了一个效果,就是我们的查询哈,你就是带条件查询,不带条件查询,这个最后分页显示它在后端是同一套在前端呢,哎,我们。通过在前端传参数啊,和这个后端的这个SQ语句,我们进行了一些个专门的设计啊,让它能够去实现一个兼容啊,就是后端只开发了一套,前端只是页面上对接一下就好了。这是管理员维护。下边这个角色的一个维护。角色维护呢,呃,我们是以这个AJX方式交互,实现了一套这个增长改差。
14:06
哎,所以说这个它技术上呢,没有什么别的特殊的技术啊,它只不过是换了一种这个交互的方式。在接下来呢,我们有一组这个菜单的。哎,这个呃,菜单的维护呢,我们是使用的是这个Z税,嗯,呃,在这个页面啊上去显示我们这个树形的结构,哎,呃,并且呢,去结合我们这个Z。提供的这个API啊,它的这些个方法,呃,实现呢。这个图标的自定义。哎,实现这个,呃,显示自定义的这个图标,哎,然后呢,还可以对我们这个树形的节点,哎,进行这个增产改查的操作,哎这些呢,其实你要看代码的话呢,你会觉得挺复杂啊,就是这个,但是你真的你把它想透了的话,你会觉得这个东西其实不是很复杂啊,它其实挺简单的。
15:18
只不过你是对他的API不熟悉啊,有这样一个障碍,其实熟悉了以后都还好。哎,菜单维护也搞定了以后哈,我们谈到了一个RBAC的一个权限的一个模型。哎,这个叫做绕。啊,Based authentication control。是基于角色的权限控制。我们这儿咱们用的其实是一个最简单的RBAC模型啊,RBAC模型呢,其实除了我们最简单的还有r baca ac0RBAC1 RBAAC2 RBAC3对吧?啊,它还有很多这个复杂的模型,哎,那这个就看我们实际的这个现实的需要了。
16:12
呃,再然后呢,我们呃,进行了两套这个分配啊,一套呢,是给我们这个。管理员。去分配角色啊,一个呢,是给我们这个这个咱们写一起吧。哎,这是这个分配哈,分配资源,哎,这里边一个是给我们in呢,去分配我们这个角色。啊,一个呢,是给我们这个角色呢,去分配我们的这个权限,这里边技术呢,就没有啥特殊的技术啊,没有什么新的技术了,主要是这个业务的这个流程啊,怎么去实现这个功能。是这样一个练习。这是我们分配的资源。再然后呢,就是我们这个权限的控制,对这里边呢,我们就是使用了我们的。
17:09
接管我们这个项目的。哎,一个这个叫呃登录啊,这个登录的检查一个权限的这个一个验证,哎,这里边要是说起来他做的这个操作哈,你当然需要把security的环境呢,加入到我们项目里边,加入到这个项目里边的话呢,我们这还做了一个操作呢,其实就是一个改源码的一个操作。啊。哎,就是说呢,我们让security在初始化的时候啊,不要去查找我们的这个LC容器。而是在我们的这个第一次请求的时候,哎,查找。呃,不仅如此,说这个。查找的LC容器也改成了,哎,去查找我们的这个什么MC的啊,这个LC容器也就是由PA啊,它的负framework初始化的那个L容器。
18:21
Dispat solve的这个负类叫framework service初始化的,哎,那个LC容器啊,为什么呢?因为我们要进行权限控制,我们的相应的那些个权限的设定啊,都是在我们spring Mac的那个handler里边去设定的,你要是加到spring的那个LC容器,也就是contact listener初始化的那个LC容器里边,它就不起作用了。啊,所以说我们是,所以说在这儿要加到我们spring Mac的LC容器里边啊,让他去找到这个LC容器,去找我们那个spring security的con,这样才能够起作用啊。哎,那然后有了这个以后呢,后续我们就是说这个一些个常规的,常规的这个使用了。
19:05
呃,它的权限的控制呢,除了我们这个有几个基本的功能啊。一个是这个登录的一个验证啊。呃,就是说把表单,我们登录的表单去对接到我们。这是一个登录的营验证,哎,然后呢,一个登录的一个检查,哎,这是security,它这个内置的,还有呢,它会有一些个全局的一些个配置,这是在他的那个。呃,专门有一个配置类里边去配置的。哎,这是这个全局的配置。呢,还有这个我们在上面的,不这个就体现在我们用的这个pray。
20:10
Authority。哎,这个注解啊,哎,在这儿限定他这个方法呢,需要的是什么角色,或者是什么权限。啊,再然后呢,我们说页面上还有这个标签啊,这个是对页面局部哎,进行这个权限的这个限定,哎,这个是实现的是一个细力度的一个权限控制。哎,就是这样的话,我们关于我们的后台啊,这个单一架构的部分啊,我们总结的这个技术点啊,大概就是这些,希望大家能够跟我们这个业务功能结合起来,用业务功能把我们这些技术能够把它们给串起来。
我来说两句