00:00
前面我们搭建好了后台管理系统的前端项目,以及它的后台项目的运行环境,并且呢将他们两个联调测试通过,接下来呢,我们就使用人人开源提供的genator代码生成器,为我们每一个微服务生成基本的增删改查代码。首先呢,我们需要下载我们这个代码生成器,我们还是一样,我们复制代码生成器的地址,我们直接克隆下来,好,我们使用get的办事控制台,好,我们使用GC命令来将我们这个代码生成器克隆下来。将代码生成器克隆下来以后呢,我们同时也要导入到我们这个项目里边,打开我们下载的代码生成器来找一下啊,就在这儿,首先呢,我们将代码生器成器原来的GI文件删掉,然后呢,将我们这个代码生成器完整的项目导入到我们这个里边,好,我们来打开它的所在文件夹。我们直接复制进去。
01:02
来到我们的idea里边来,我们看到呢,这个代码生成器,现在项目已经进来了,我们将这个代码生成器工程同样的加到我们这个model里边,好,Model来找到我们的人人gen,然后呢,我们来直接运行我们这个代码生成器工程,来把这一块刷新一下。好,我们这个人人generator就已经进来了,来直接运行我们这个项目,当然在运行之前呢,我们在这呢来看一下,首先呢,在它的这个配置文件里边有一个application压面,那这个压面呢,就要修改一下,我们需要连上哪个数据库进行逆向生成,那我们这个数据库地址呢,我来写一下,是我们虚拟机192168.56.10,然后呢,我们是来连下。我们来看一下,我们呢先来生成PMS,比如我们这个商品系统的,那么就来联想PMS,然后呢,接下来我们来把账号密码填上root。
02:04
Root好,那代码生成器要使用呢,首先在这一块,哎,我们就填好了,接下来第二处在代码生成器properties里边,诶这呢还有我们的包名等等这些,那我们将这一块呢,也修改成我们项目要用的,首先这个main pass,那这这就是主要的目录,主目录呢,那都是点at硅谷,那这一块包名呢,那都按照我们这个规范,都必须写成com.at硅谷来找一下at硅谷,然后呢,我们每一个微服务的包名都是com at硅谷,再加上鼓励mail,再加上自己微服务的这个模块名,所以呢,我们这一块还是写古励mail,然后呢,接下来这有一个模块名,那模块名呢,每一个模块叫什么名字,那么就在这儿来写上,我们第一个微服务呢是product商品模块,比如呢,我们来写一个product模块名,然后当然还有作者。
03:04
诶,比如我们写我们自己的信息,比如好,然后呢,包括这有一个表前缀,我们现在呢,修改我们的逆向工程的配置,我们是连向PMS,我们这个PMS呢,这个数据库对应的每一张表这个前缀呢,都是以PMS开头的,如果我们写了表前缀,那么每一张表对应的扎宾就不会以加上咱们这个前缀了,所以呢,我们就可以来给这一块指定上表前缀,那么当前连接的是我们这个PMS系统,那所有的表呢都是以。PMS开头的好,那我们把这一块的逆向工程就稍微配了一下,然后我们直接启动来看效果,我们在这儿人人application里边,好,我们来打开。
04:01
好,我们来稍等一下。结果。我们翻译呢,它现在已经在八零端口进行启动了,我们来直接访问我们这个项目来,现在呢,这就是我们的代码生成器,来到我们的人人fast里边,我们看到呢,他这一块有表名,我们让他每一页显示50个,相当于呢,他将我们PMS这个数据库的所有表都展示出来了,那我们想要逆向生成哪张表可以选,那我们现在要逆向所有,那我们把所有的表呢都一勾选,我们点一个生成代码,它将所有生成的代码都给我们下载成了一个压缩包,诶这个也很方便,我们直接呢打开这个压缩包。来看一下里边是什么内容。我们将这个压缩包的内容呢,比如我们直接解压到,解压到我们的桌面上来看一下。我们让它放到桌面上的,比如这个人人文件夹里边,好直接立即解压,那接下来呢,看到桌面上解压在这个文件夹,这个文件夹呢,逆向生成的代码啊,有很多这S狗语句呢,我们后来说我们现在呢,来看这个慢慢里边有Java和resources,来看resources里边呢有map,那么这个map呢,就是我们这个逆向工程生成的所有maab的这个map文件,我们来打开看一下,诶就是这些,然后呢,包括我们的这个里边。
05:27
除了在resources目录下有东西,在Java目录下都有我们生成的代码,报名呢是按照com at硅谷鼓励mail,那相当于按照我们当时指定的这一块来按照com at硅谷古励mail,然后呢,加上什么?加上我们的这一个模块名,看product我们的模块名,然后呢,它将controller do,呃,实体类以及service全部生成了,所以呢,我们可以直接将这些生成好的整个文件,诶,我将整个慢文件夹我来复制粘贴到我们对应到微服务里边,我们是专门为product微服务生成的。
06:07
来收音,Explorer以文件夹的方式打开好,我们直接呢来到src,我们把我们生成的麦给这粘贴好,然后呢就会多出一些内容。我们来看一下,我们直接在这一块来看一下,多出了内容,我们粘过来呢,首先多了这个s RC views这些里边呢,这是生成的这些view u文件,相当于呢,连我们前端代码都帮我们生成了,诶我们这现在呢,目前用不到,先把它直接删掉好,然后呢,我们再来看在这里边controller doity service都有好,我们来看它生成的service,每个service呢有接口也有实现类,但是我们发现默认生成的这些代码呢,有报错还不能用,因为呢它要导入一些这些类,首先呢,他希望从com and硅谷里边来导这几个工具类,包括呢,还有这几个,这几个呢是使用马beat蒂plus导入的类,所以说呢,我们可以给微服务引入beat蒂plus的相关依赖,当然这两个工具类呢,其实在我们的这个人人fast里边已经有提供,我们来找一下。
07:17
我们来这儿呢,有一个common us,我们能看到呢,这有配置us,配置UUS,它需要的呢,是这个,包括呢corry它需要的呢,也是这个,要说呢等等等等,在我们刚生逆向生成的这些代码里边呢,有好多东西,公共的一些类都还没有,我们来看一下service里边有没有的实体类,里边包括要标注一些注解,那这个注解呢,是long bank的。诶,是我们这个long bank的,我们后来会说它我们先放在这儿,包括呢,我们这个do,这是马贝斯相关的接口,诶马贝斯plus相关的接口,马BI plus的依赖也没倒,然后呢,包括controller来看,Controller里边呢,还有这些注解,Request permission,这个注解呢,是she弱的一些权限注解,那么这个呢,我们相也没有导,而且我们用的权限框架是spring security,包括呢,我们每一个CTRL要返回一个R,相当于响应对象,那么这个东西呢,我们也没有,那像这些公共的一些工具类,包括我们公共的依赖我们都没有,那我们呢,就直接在这里边来创建一个鼓励mail common,我们将后来每一个微服务需要的东西呢,我们都给它写在我们公共里边,我们呢就叫鼓励ma。
08:39
好,我呢直接next。创建出来,那我们最终呢,希望的是。每一个微服务的一些公共的类,包括一些公共的依赖等等,我们放在common里边,让每一个微服务呢都来依赖common,那这一块的这个模块名呢,它稍微有点问题,Shift f6来修改一下这个模块的名字,这个模块名呢,它中间少了一个横杠,不是我们预期的好,现在呢,这个古丽麦尔common就来承担我们这个作用来描述一下。
09:13
Description,然后每一个为服务为服务公共。公公共的,咱们这个依赖以及逼应啦,包括工具类啊,工具类等都放在这个一这个项目里边,那每一个服务呢,就来独立依赖这个项目就行了,好,每一个服务呢,都在这上来就别的依赖先不说,上来就先来依赖我们这个common,鼓励麦啊common好。然后我们给common里边先来加上每一个微服务要用的一些公共依赖,好们来到common里边,首先呢来写上depends。需要哪些公共依赖呢?我们先来看逆向生成的这些代码里边缺了什么,除了缺的那些我们这些渣宾以外,我们先来补全这些,首先呢,这个是一个权限注解,这是she弱的,那我们这个呢,先不说,那我们controlrler放在这,我们后来用spring security来在do层,Do欧层呢,首先大家都在用马贝蒂斯,而且呢,我们现在用马贝蒂斯plus比较多,所以呢,我们现在呢,在这一块先来导入我们do欧层,我们使用马贝plus来作为我们这个do层的一个技术,好,我们来去网上来搜索我们的玛贝蒂斯plus,将它的依赖导进来就行了,玛尔贝蒂斯plus。
10:43
它的详细使用呢,大家都可以参照这个官方文档,好,我们先来把这个,我们在这有一个安装,把马布丽斯plus先拿到,然后呢,这是马贝斯plus跟spring boot整合的starter,我们可以直接复制过来使用就行。好,这是第一个公共依赖,我们先呢导入马杯斯plus,那导了以后呢,那我们这个do层那就不会报错了,诶进来base map,这都是马贝斯的,那就OK了,然后呢,接下来我们继续来导入第层,不报错以后呢,再来看实体类entity。
11:17
N里边呢,首先这个table name table ID,这都是my beat plus的一些注解放在这,这还有一个呢,Data data呢,它是long bank的主解,所以呢,我们先在这来再来导一个依赖,这个依赖呢叫long bank,好,然后呢,我们就用118这个版本,这直接有提示,这个是一个什么技术呢?大家还记得我们之前给idea里边装过一个这个插件,它呢可以简化我们JAB开发,我们可以看一下生成的这些实体类,这些实体类呢,首先table name对应的相当于这个实体类对应的是我们这张表,然后呢,实体类的属性我们发现呢,没有任何的get set方法,因为呢,我们有一个注解叫at data,只要我们装了这个插件,那么在编译期间,插件就会自动的为这类添上get set方法,相当于省得我们去来写各种get set1大堆了。好,那我们把这个问题又解决了,来看service。
12:18
里边service里边呢,我们发现呢,这些service employment也都有了,那现在就剩了这些公共的一些类,这些公共的类呢,其实都可以在我们以前的这个人fast里边粘贴过来就行了,好,我们现在呢,就将这些公共的类粘过来,首先在common里边,我们现在来看一下这些所谓的所有的公共类都在com at硅谷common这个包下YouTubes下,好,我们希望呢是这样子的,那我们直接创建一个包,那包名呢,我们就按照我们的这个要求,com.at硅谷点common.youus点一个接下来那么这是包敏这两个基本的工具类配置,Us和query,我们来从这一块复制过来,从人fast里边。
13:09
来找一下它的这个工具类,这有一个page us query,好,我们先把这两个复制过来复制。好,我们来稍等一下,这两个复制过来以后呢,我们可以接下来继续看我们这个product product里边看一下它的这个报错有没有解决掉一些呢。好,发现呢,现在service里边整体呢,全部都不报错了,因为我们把这两个工具类,诶这个query以及我们的这个配置us也都导进来了,那现在呢,就是controller的来看一下controller报错呢,其中与有一个类叫R,那这个R呢,就是response响应返回的,在我们人人fast里边也会有,那我们直接就拿过来来找一下。
14:01
Common里边yous,好,这还有一个R,我们来复制过来,复制过来呢,我们也直接放到common里边,好来粘贴过来,这R有了以后呢,我们来看一下controller这一块呢,R就不报错了,那controller的这些注解我们现在就不用了,因为我们后来还要用spring security,那这些注解呢,我们可以先删掉,一会再说吧。好,这个R导进来以后呢,发现R里边还依赖好多东西,比如http status这个呢,我们来看一下,哎,它呢,这是org阿帕奇http htp status,那这个呢,其实是htp components这个组件里边的一个类,我们可以呢,来在me仓库里边来找一下。当用过了,当然就知道它是这个里边的,来我们来找一下啊,它这个呢叫http components。这个呢,其实是我们阿帕奇给我们做的一个使用Java代码发送HTTP请求的工具类,好,那么我们就来直接导入这个核心包就行了。
15:06
我们先直接把它先导进来,保证呢不报错,那现在呢是4412版本来点进来把这个复制过来。我们直接呢来到我们的common里边,好,我们将这个导进来,这个导进来以后呢,那我们的这个htv statuss就OK了,那R里边呢,这一块不报错了,那包括这个quary里边,Qua里边呢发现还有报错,Qua里边呢还缺少了什么,首先呢,这有一个CI filter,人们发现呢,这是人人开源自己写的一个工具类,这呢还有一个叫string优us,这是引用的安帕奇斯浪工具包,那这个common斯浪工具包呢,其实在他的这个人fast这个后台工程的po文件里边都引过,诶这个common斯浪那呢,直接把这个复制过来,复制过来来到我们这个common里边,当然这个版本号呢,我们来跟呃之前的这个后台项目保持一致,这个commons long version我们来看一下是2.6来复制过来。
16:11
好,我们现在呢,在这一块先把这个string YouTube现在解决好了,将来这个filter我们就直接也往这复制就行了。直接这个common里边来找一下这个这有一个circle filter,行了,我们把整个这个XX文件夹给这一复制好,放到我们的这里边儿。好,然后呢,在query里边,好,我们把它先加到版本控制,在query里边呢,我们来把我们的circle filter来改一下引用,好s filter现在引进来了,还有我们这个cost,这是一些常量,那这个常量呢,肯定也在控在原来的这个控制台里边,我们来找一下。里边来找,把这个常量直接复制过来。
17:02
好。来编写很多常量的类,我们也复制过来,然后我们来看quary里边常量也不报错了,来找这个circleq filter circleql filter,那么这一块呢,也是导入进来的,那诶前面呢,导入进来了,使用我们报名,那就把这个就可以删掉了,那我们这个query呢,也不报错了,我们整体的common项目就不报错了,那再来到product里边来看还有什么报错。现在呢,集中到controller里边,那这个controller呢,整个呢都OK了,现在呢,只剩下我们这个require permissions注解,这是she弱给我们提供的,那这个一删以后呢,我们controlrler,这个controlrler就不会有什么报错了,那么其他的controlrler呢,其实由于生成的时候都有这个注解,所以呢其他不报错,但是这个注解报错,所以呢我们来调整一下逆向工程,我们让生成ctrler的时候呢,先不使用这个注解,我们来看一下我们的这个逆向工程,所谓的逆向工程呢,它的核心都在这一块,这有一个叫模板,所有生成的controller DA,包括实体类的生成规则,相当于写了一个模板,而模板里边的这些内容呢,都是动态取出来的,我们现在来看我们的这个controlrler,所有的controlrler呢,再来生成我们这些东西的时候呢,都加了这个注解,我们呢就可以放心的把这些注解删掉,当我呢先不删,我们呢将它。
18:29
注释掉,那么后来还会有用,因为我们要转换成spring security的权限控制好,我们先把它注释掉。把这个注解呢,注释掉,相当于我们再来改逆向工程的这个模板,这个模板一改掉以后呢,以后生成的代码都不会有这些内容了,你看代码里边所有的其他东西都是动态取出来的,然后呢,包括最重要的把上边的这一块,对于这个注解的引用我也删掉,好我们把逆向工程呢,相当于重新修改了一遍,然后呢,我们可以重启逆向工程,让我们把ctrler重新生成一下,好,我们来重启一下逆向工程。
19:10
好,重启成功以后呢,我们可以重新来生成一下。好,我们现在呢,来到咱们这个代码生成器,然后呢,我们将所有的表全部选中。所有的表全部选中,我们让它重新生成,那么新生成的这个代码呢,我们最后也放在桌面,好,我们现在把这个桌面之前生成的删掉,我们呢将新生成的代码来打开,并解压到我们的这个桌面,好解压到。我们的更换目录放到桌面还是生成到?人人这个文件夹下好,新生成的这些代码里边,我们现在呢,只需要使用controller。因为我们对controlrler的这个模板呢,做了一个修改,那现在看新生成的crler有没有我们那个注解,你看我们这一块呢,是注释掉的,包括前面是删掉的,那这块呢就没有了,所以呢,我们可以直接将我们的这个controller,所有的controller我们替换成我们新的,好打开我们的这个文件夹。
20:16
我们只换CTR了。我们在这里边呢,将所有的controller全部进行替换。好,这个controller呢,我们就删掉了,然后呢,换成我们新的controller,我们粘贴过来,然后呢,我们来看新生成的这一块controller,现在呢,整个东西都没有任何的报错,OK,一切OK,那么这个逆向工程的整个调整我们就做完了。以后所有的微服务,我们只需要依赖common我们这个通用工程,然后呢,再用代码生成器逆向出我们基本的代码,在逆向的所有的代码里边有基本的分页方法,包括呢,查询详细信息,包括保存、修改、删除,就是增删改查都会有,那我们基本的增产改查呢,就依托于逆向生成的东西,当然如果不够或者生成的这些方法功能不全的话,诶,我们到时候再进行修改,或者自行添加一些新的方法就行。
我来说两句