00:00
就是下面啊,咱就把这个权限管理按照我们的过程给各位来整合一下,这个代码不需要各位去敲,但是要求各位能按照流程把这个整合过来啊,在实际中也是让你去整合,不可能从零去写这个代码,那咱们看这个该怎么去整合,给各位一步一步来说一下啊,我把步骤每步给大家都讲一下。这位置写下哈,咱们就是整合。权限管理的这么一个模块,那怎么整合,咱们一步来看啊,首先第一步操作呢,咱肯定需要创建一个子模块,这肯定是必须的,那我们来创建一下啊,怎么创建呢?这我之前创建过了啊,就是咱们现在在我们的里边,我们创建一个模块,比如我叫service a c,名字可以随便起啊,我就叫这个名字,这是我们建的一个子模块,然后在这个模块中一会再来实现它那个权限的一些相关的接口操作。
01:04
啊,这是第一部分建一个子模块,咱是在这个。Service里边创建一个叫service。Acl这么一个模块啊,这是我们做的。第一部分。所以各位啊,把这个快速给他做到啊,然后创建过程中会有咱之前说那个可能颜色图标没有变,按照我们之前的过程把这改一下可以了啊,这不再重复了,都讲到过啊,然后这个创建之后咱继续往下来做,第二步怎么做呢?咱需要在里边啊引入这个依赖啊,就第二步引入依赖,但是依赖中等,因为咱要做权限管理,后面咱要整合这么一个东西叫security,这个依赖啊,咱先放到这里,后面咱再讲,你今天应该讲到这么多,但是咱心里头引入进来啊,这是我们另外一个模块。那我写一下啊,里边的第二步操作。第二步怎么做呢?咱需要在这个service。
02:02
AC的这个模块中引入咱们相关的这个依赖。把这引入啊,然后依赖引入,就是咱们刚才看到这两个东西,你看你把这个直接复制可以了,我这个我看一下应该我提前复制过了啊,就是这两部分就是它的第二部啊。我把这个给大家直接截过来啊。这个两个依赖,这是我们后面开发中需要的这个部分啊。这个。截过来啊,然后两依赖特别说一下啊,两个依赖中的,首先在依赖中的就是这个依赖。Fat Jason咱之前用到过,是一个Jason的转换工具,然后除了它之外还有依赖叫啊security,这一赖是咱后面一个模块,咱暂时没做到,一会儿咱给他先复制过来,然后明天再来继续讲这东西到底是什么啊,这个先给它引进来,所以需要两个,一个是这工具,一个是咱们后面整合那个spring那个模块,把这个先引入,这是它的第二步,进入依赖。
03:08
给各位啊,给他能快速做到,然后这个做到之后,咱再做第三步,第三步干什么呢?咱就是把这表都穿越过来,然后第三步各位到我那个源码中,把这里边的相关代码给他复制到我们的模块中来啊,咱做个复制可以了。然后写一下啊里边的第三步。咱们就是到我的源码里边复制这个service a c它这个模块的。核心的这个。赛把这个咱复制过来啊,那我来直接复制一下啊,啊复制不用我说了啊,直接CTRLCCTRLV就可以了,那咱找到啊,在我进的源码里边给大家提供了这个东西,咱们看到啊叫service a CL,那咱把它复制,那就复制里边的主要部分,因为这个依赖已经够了,然后咱们打开S2C。
04:05
大家看啊,在里边有个com at,硅谷al service,因为我这个包创建过了,大家把这里边的大家看有这么几个部分都复制到我们这个模块中来啊,因为这个是固定写法,不需要各位去写一遍,写它没有实际意义啊,咱给它整合过去就可以了,在实际工作中,我们也都是按照这种方式做个整合。这个啊,咱的第三步,那我这里边啊,给大家就来复制一下。就这几个controller entity,包括map,包括这些东西啊,都复制过来。咱们复制,然后复制到我这个项目的acl测试中来。把这个啊直接。连接过来,然后OK。啊,大家看啊,现在稍等一会儿,这里边应该就竖过来了,就这些东西啊,没有什么特别的啊,然后一会儿咱具体看这都是什么,然后复制之后在里边有个启动类,这些启动类我直接写好了,就是里边这么一个结构,包括加上这些基本注解啊,主要咱加上这个东西,咱做那个就是na那个。
05:10
注册这部分啊,这个做到了啊,然后除了它之外,咱肯定有这个AC的配置文件,那配置文件啊,把里面内容咱直接给他说过来啊,就是我们的这段内容。我写一下啊,按照我的步骤啊,第三步复制里边的这个代码啊,然后在这过程中肯定会包含咱那个配置文件。包含application。那个配置文件的内容。啊,配置文件。它里面内容把这个我们都给它复制过来,那这个配置文件啊,给它就直接复制过来,然后把里边的内容咱改一下啊,因为现在是个新的模块,给咱改一个端口,8009这些都不需要变的啊,然后这下面改一下com at,硅谷a CL service map口,包括咱是那个NAS。
06:06
NAS改一下啊啊,因为这个项目之前用的是那个E瑞克,咱现在换成了NAS,所以这个地址换成咱那个。那扣的地址啊,各位复试时注意啊,就是用之前那个项目写的,但是这里边你要换成na扣的地址,那我给他就换一下啊,我到其他里边。出这个改一下啊,那应该就是这个。127.0.18848端口号,把这个咱给他就拿过来。啊,就是里边的这个地方。所以这样的话,把这个配置文件咱就给它改出来了,包括这个代码结构都有了啊,这是我们做的这个第三步。啊,这步完成,然后这步做到之后啊,咱再做个第四步,因为咱们现在做这个权限管理中要用到一个东西叫security这么一个框架,虽然咱今天没有用到啊,但是咱先给它复制过来,为了咱们明天做准备啊,那这里边我在写它的。
07:06
第四步。咱们就是啊,到我的这么写啊,咱先创建一个那个叫。Seri这么一个模块,然后到我们的源码里边复制它相关的代码,现有这个模块,这模块咱们明天继续来讲,今天咱先让它不报错就可以了啊,把这个先创建,那怎么创建呢?这位置无所谓啊,但是咱们因为这个spring是一个比较公用的,最后给它是放到我们的common里边,但是你放别的模块也无所谓啊,我就放到common中,在common里边你把这个创建,就你点右键,我是建成叫W,然后你把我课件中的代码给它就复制过来就可以了啊,就是把。这个代码。能看到啊,在这里边有一个。然后你把里边的。
08:02
就是这些代码都复制过来可以了,我这个已经提前复制过了啊,就这些直接CTRLCCTRLV啊就可以了啊。这是我们做的这一步啊,你建这么一个模块,然后复制我们代码啊,当然这个过程中呢,它也需要有依赖,我这里也写的完善点啊,就是复制代码。包含那个。Home文件中的内容。这个都需要复制啊,这个啊咱给它就拿过来了,然后我这个是放到了common里边的这个位置,叫three security,这代码我都填复制的,它里边不需要配置文件,就是这么一个基本结构啊,这咱明天具体会讲它到底是干什么,咱现在复制过来说让他先不报错就可以了啊。咱就把它。完成了啊,然后这个给大家也是。结构图。咱在common里边创建了这么一个东西。就是咱们的。
09:01
这个部分啊。给它拿到就这里啊,所以咱们现在呢,把这些准备工作都做到了啊,就是这么一个基本的结构,按照他把这个整合就可以了,我这里边把代码都写好了,就算各位以后到实际工作中,你拿我的代码直接改就可以了,因为里边结构这些东西都比较完善,按照我们的表结构这些都有了。这个啊是一个快速的整合过程,然后这个整合之后呢,就这里边啊,我先下面给大家来写几个比较常见的这几个功能,通过这几个功能,咱们就是更熟悉他这个区案管理的流程,包括咱把这个递归操作给大家详细来练一练啊,让大家把这个递归要推熟练,因为在实际中吧,递归是一个很常见功能,或者说以后比如你在一个东西叫面笔试的时候。笔试的时候这种DV代码会经常考到啊,所以咱们把它带着各位来练习一下啊,那这个复试之后,咱就今天重点看这个acl,然后明天咱再讲so啊,今天应该讲不到这个东西,咱今天把这个说完,在这里边有咱们的最基本结构,包括controller service map anti,还有一些工具类啊,就这么一个结构,然后咱看里边啊,大家应该很熟悉啊,就这就是我用代码升级生出来的,帮你先看这个anti,你看啊,有这个菜单。
10:29
角色用户角色跟菜单的关系,包括用户跟角色关系都是这些内容,包括你再看啊,Service map中也对这个内容,CTRL里边也是这几个值,就是CTRL中咱们不需要里边的。这两个C,因为这两个咱通过这三个菜单角色,用户可以操作这两个controller不需要,但是他们的swi map都需要啊,因为要操作里面表,所以最终我们在control中有这么几个controller,咱看一下啊,这control什么意思?咱家看这三个,第一个叫permimission,就是我们那个菜单管理的这个。
11:07
Controller,第二个叫肉,是角色的,第三个user色是用户的,然后还有一个叫index,这是用于我们显示那个就相关内容啊,主要这么几个,然后这个显示主要是为了得到你那个整合,So,用到咱们明天会具体说,今天咱先看这三个permission,肉user,就是针对我们的菜单,角色和用户,然后在它里边有我们就是写刚才说那几个操作,增删改,查操作,还有这个为菜单分配角色为用户。啊,就是分配,就为菜单分为这个角色,然后为用户分为这个交换操作啊,这些功能里边都存在。那我下面给大家来写什么呢?咱把这个打开。来先看一遍啊,比如我重新带着各位来写一遍,这是我提前写好的。把这打开,这是我们说那个菜单的部分。
12:00
菜单管理,然后在菜单管理中呢,咱们下面啊,给大家主要来写这么三个功能。我来写一下啊,哪三个功能,我把这三个功能啊,给大家拿到上面来啊。就是。这么三个二。一会儿咱们重新来写啊,然后再找一个,还有一个这个。咱看三个啊,都是什么功能,首先各位来看啊里面的第一个。第一个是什么呢?它叫做获取全部菜单,也就是说把我菜单表中的所有数据都查出来,但是查出来之后,他们应该有一个树形结构,那种效果跟咱之前说那个一级二级分类章节小节类似,所以这个过程,因为它这里边不是只有两层,它有多层,有删层,可能有两层,可能有更多层,所以咱们写个递归,把这做到,这是第一个获取全部菜单啊,一会咱来实现,然后第二个这个功能就是删除菜单,比如我现在想删某个菜单,那菜单下边可能是不是还有子菜单。
13:04
然后子菜单下边是不是可能还有子菜单,所以咱要做一个递归,把菜单本身和它里边的子菜单,包括子菜单下边还有子菜单都给它删掉,这是第二个递归删除,然后还有第三个就是为角色分配权限,然后我现在按照我刚才说到的,比如我这个角色是管理员,我想为管理员分配讲师管理和课程管理,那这个该怎么分配,就是跟这个用户分配角色一样的啊,咱就以这为例给大家,主要咱们写三个功能。三个功能中,前两个用到的是递归操作,然后第三个用到是一个分配的操作啊。所以大家反正先知道啊,是咱们马上做的事情,而这里边涉及到这个递归啊,咱先看一下啊,一会儿我会重新写啊。看这递归,递归里边呢,其实主要就是调了一个方法,方法中做判断,然后再调方法,然后方法再去调用啊,就是循环调用,或者重复调用当前方法做这个操作啊,包括那个删除跟它类似。
14:08
所以这个啊是咱们提到的啊,也就是说咱们刚才这过程中主要讲了这么几个内容啊,我快速说总结一下啊,第一个都要知道啊,咱们做这个权限管理,它的需求怎么样,就是咱们要做成什么样的效果,就我刚才说到了三个模块,菜单、角色、用户,然后在这个需求过程中,我们涉及到有五张表操作,那这五张表分别是什么,以及他们关系怎么样,这个各位要清晰,就是五张表,然后他们是多对多建第三张表做他们的关系啊,这是第二个,然后第三个就是咱刚才整合的过程,这个过程代码不需要各位去写一遍,因为它是固定结构,在实际工作中也是咱们直接整合,那这过程就是咱建这个模块CCL,一种依赖,然后包括复制代码啊,当然这个位置咱需要建一个spring,为了咱们后面做这个框架的引用。
15:02
然后这个都做到之后,也复制了,这个结构就出来了,就这么一个结构,然后一会儿给大家写里边的这几个方法,就是把这个递归,包括这个需求给他做一个更深入认识啊,包括这些CTRL里边的方法,我也会给大家再详细介绍一遍啊,这些代码要各位能看懂会改就可以了,不邀你重零写一遍,因为代码是一个固定的过程,咱做区间管理肯定都是这么去整合就足够了。
我来说两句