粉丝7.8万获赞29.3万

入门案例的解析,前两部分咱们说了,潘瑞特和斯达特都是可以加速我们的开发配置的, 那我们的程序配置完了,想运行靠谁呢?哎,这就是这节咱们要说的引导类,其实大家已经看见过,也运行过 哪个东西,就是这个以 ablay 开训结尾的这个类,这个类名可以改吗?随便改,你只要把这改完,把这改完就 ok 了,明白吗?这个引导类他是干什么的呢?我们就要来说说这一句话他的作用。我先问一点, 我们不管是做 spa 的程序也好,还是做 spa mvc 的程序也好,最终是不是都会运行出来一个 spa 的容器的对象啊? 你的所有对象是不是都以病的形式交给 spa 容器管理?那我们做 spa 用布的程序会不会没有 spa 用这个容器呢? 不可能,绝对不可能,他一定得有,那我告诉你,在这一行中就有这个容器,来把这个乱运行以后得到的东西给收集出来,看看叫什么? 咖啡? grape, application contacts, 把前面这一句话去掉。 application contacts, 这不就是应用上下文那个接口名吗? 说的简单一点,不就是我们的容器对象吗?可配置的容器对象?对,这就是一个我们的死片容器来,既然是个容器,那你就干点容器干的事。 c dx 点 get 病有没有?有的,那我们的程序里有病吗?是有病的。在哪? 我的扛抽了里边是不是定义了一个这个东西他就是个便把它拿出来来给他并拿,并有四种方式,咱们这就用按类型拿了啊,在这写上一个不可抗抽了点儿 class。 好,我们就看看这个病存在不存在,明白吧?其实他干什么事不重要啊,来打印一下这个病啊,我们说病的信息,然后在后面加上一个病好, 看看是不是一个真正的病的处理。来运行一下这个程序,注意,运行以后呢,咱不用去发任何请求,因为容器只要一出使化完以 下面是不是就走这些代码?你看我的这把利剑是不是就已经出来了?对,这就是一个并,而且我们是从容器中拿出来的 这个东西就代表了我们 spring 的容器,你可以理解为它是 spring 布特的容器,但归根结底还是 spring 的容器, 按照这种形式,我是不是随便定一个并都能拿到呢?可以再来试一下。来在任意的地方,在这个 ctrl 出了的外边 it 黑马下面,我们去造一个类啊,这个类呢,我们不需要他有任何功能, 我就在上面 atcom 的就定义一下,我就看看这个病能不能够上来,明白吧。哎,在这个地方咱们来个 ctx 点 get 病,然后来一个 uzer 点 class, 按类型获取一下他啊, 然后得到这个优字对象以后,咱们去打印一下这个优字,看看他是不是真的存在。来重启一下, 我们看看第二行,在这个利剑下面是不是又多了一行打印对象。果然好,现在这个事就做实了,其实我们这个慢方法中这句话就是启动了一个死兵容器,我们定义的并就可以加载到这里边, 要真想探究它里边的内部的东西,咱们到原理片再去讲,不过可以带着大家简单看一下啊, 整个这个东西我们叫做引导类,它的功能主要就是靠这个注解,那这个注解干嘛的呢?点进去一看,我们看它的上面又包含了弱 刚刚注解,现在不清楚的情况下,我们不用管太多,就看一个东西,你看这有一个 speentbook configuration, 再点进去一看,你看到了康菲 grix, 搞定,这就是个配置类。明白,你以前的容器怎么得?不就是加载配置类吗?我告诉你,现在它就是一个配置类。 然后你再看他下边有个艾特康巴顿的死,看,后面有一个排除过滤器的规则,你全当这些东西没有写那么好了。艾特康巴顿的死,看什么意思?扫描并 当你没有指定任何包的时候, suring 扫的是什么?默认当前这个配置类所在包及其子包 是不是这样呢?来瞧瞧。配置类在这当前所在包是 come 掉 it 黑马,那么 他下面的东西都会被扫描,看一下他,看一下他是不是都被扫描到了,所以在运行出来以后,这俩病就出来了。明白, 怪不得我们的程序能运行,闹了半天还是死不硬,没错,死不硬,不,他就是为了简化死不硬开发的。明白,有人说,那我要把这个 u 字往外提一步,不在这个包里呢?好想法,来,往外扔,扔到 come 下 refect 重构一下, 现在就不在这里了,我们依然去运行这个程序,看看他会出什么问题。运行, 运行以后呢,咱们就看这把利剑下面是什么啊?走,我们会发现下面已经运行不出来了。他抱的是什么?他说, no such bin divine 训 except, 没有这样的一个并定意被发现。明白,也就是这个并的 科目点优字这个病根本就没有,为啥没扫描到,明白吧?好了,到这呢,咱们就得到了一些初步的信息啊,原来这个应用程序,也就是我们所说的引导类,实际上是整个程序的入口,他做了一件什么事? 加载病,把病加载起来, swing 的其他的东西才能开始干活,你没有容器, swing 啥也不是。 好了,到这呢,咱们这一节就说完了,这一节呢咱们就讲了一个东西,就是这个类,这是一个引导类,它是整个布特工程的执行入口, 运行这个慢方法就可以了,他运行以后得到什么?一个 spa 用容器,也就是布特工程运行后会初始化 spa 用的容器,然后扫描引导类所在包,然后 加载定的并你的整个程序才能运行起来, ok 吧?好了,到这里呢,咱们这节就讲完了,这节就讲了一个信息, speaking 部的工程提供引导类用来启动程序,而这个引导类启动以后会初始化 spa, spring 的容器,所有的一切还是 spa, 用那套工作模式。 那到这里呢,这一节就讲完了,我们发现我们的程序已经启动起来了,慢方法不就可以启动我们的项目吗?那这个时候问题来了,我们之前造的程序都是外部工程啊, 谁帮我们启动的服气呢?换句话说,外边服气,如果不启动,你的浏览器能访问吗? 那究竟这个福气是在什么时候启动的呢?咱们下一节再讲。

互联网上的各位小伙伴, spen boot 开发使用篇如烟而至,他来了, 这段时间呢,我也看到很多小伙伴在催更,那接下来的一段时间将给大家陆陆续续开放开发使用片的所有的内容。在开发使用片中我们要学习哪些东西呢?一共分为下面六大块,其中第四第五大块的内容比较多, 咱们首先学一下怎么样设置热步数,因为开发过程嘛,我们做了一些内容的变更以后啊,总想快一点看到效果,这样就有了热步数的需求。 那接下来咱们会对配置中再讲一些东西,他的高级相关的一些操作,接下来 呢就是测试的东西,咱们要展开说一说。第四第五部分内容,我们要涉及到非常多非常多的整合数据层,各种各样的解决方案, 以及缓存相关的,包括消息中间键相关的这些技术该如何整合?最后呢,咱们填个坑,之前呢说在运维使用片中呢,有监控的东西,还没讲到开发使用片中去讲,最后咱们把这个坑给填上, 这就是开发使用篇中所要讲的所有的东西,如果这里边还有一些东西是属于死不用布的中包含的内容,但是在这里边没有出现的话,那咱们就翻外篇再见。 下边呢,话不多说,来进入到咱们第一部分热部署相关的学习,这部分东西啊其实就是围绕着热部署的各种各样的 操作来进行学习。来吧,咱们就进入到咱们的这个程序里面来说这个事啊,在这呢我又重新创建了一个工程,叫做十二 hot diploy, 这工程源自于零八这个工程复制而来,其中有一点点小变化,我快速的介绍一下,对功能没有任何影响。 在原来的零八中,我们做 ctrl 了和做业务层的时候,曾经都是两套方案,可以看一下 ctrl 了是不是有两套 躺抽了,而业务层里边有两套接口和两套实线。复制下来以后呢,我就把那套不用的给删掉了,这个能理解吧,就是他已经不需要了,我就没必要再留着他,这是第一点。第二,在 我们原来的扛抽乐中,其实你看这个和看下边这个都一样啊。来,在原来的扛抽乐中,有一些加了注湿的东西,在新的这个里边我就把它拿掉了,注湿已经不运行了,就拿掉了啊, 然后注意观察一点啊,原来 ctrl 里边在这是不是添加功能 c 五和修改功能,这些都写的是 如果满足什么情况返回什么消息,否则返回什么消息。在新的里边也是这样,没有变化啊,哪变化了呢?关于这个值的读取发生了一点点变化,就要看页面了啊。在瑞萨斯、斯静泰佩吉斯、布克斯这里边, 我们可以看到最后一个修改功能这个位置,他的消息加载是写死的,其实 你后面设的那个东西是无效的。而在新的这个工程里边,我就把这块功能给更新了一下, 还是在最后这点可以看到这是不是已经发生变化了?哎,原来写的是直接写死,修改成功,修改失败,现在呢,是从后台读取的, 这发生了一点变化啊,其实相当于没有变化,只是把原来做的一些功能,当时做了一个 a 功能的这一块,现在呢把 b 功能的相关的也都给改了,没了,就这么多, ok 吧? 那接下来呢,咱们就来讲这个热部署这一块东西啊,来把这个收起来。 那对于我们在进行企业季开发的时候啊,我们经常会遇到这样的情况,我们做了某一个功能,我们期望于 做完这个功能测试的时候,发现有问题,修改完马上这个修改声效,这是我们所期望的结果。 那这样的一种形式叫什么呢?叫做项目的热部署,或者叫做热启动,什么意思?你的福气啊,不要重新启动,我改完以后效果马上发生变化,这样就是热部署的一个过程。 那接下来咱们就把整个过程呢,给他演示一下,看看现在是否就有这样的效果。来,我们随便找一个功能,作为当前要测试的功能入口,比如说这个 get 白 id, 这个东西有什么样的特征呢?就是一会我点击查询功能以后,它里边会显示一个信息, ok 吧?来在这咱们讲一句话啊,我们让他打 应一下,测试热部署,然后点点点好保存一下,然后重启,重启完以后呢,咱们到浏览器这边随便找哪个查询点一下就行, 来,这边已经启动起来了,我把它清掉啊,在这边点击一个编辑,这是不是就有个查单个的功能执行了,再来看这边上面是不是就已经执行出来这句话了,好,把它清掉。好,我们再来点一下啊,再确认一下来看是不是执行了一遍, ok, 把这个地方取消了啊。然后呢咱们把这改一下,我说现在啊,因为功能我发现有问题,我变了,变成三行了,这次是不是应该更多啊?那我们到这边再点击编辑,他会有效果吗? 他是不会有效果的,仍然是一行啊。来点击克利亚,然后我们点编辑看一下,走,看一看上面是几行,是不是还是一行。这就证明一点,咱们现在的项目啊,是没有热部署效果的。 接下来咱们就要来说了,怎么样添加这个效果。先分析一下我们做热部署,他的整个思想是什么? 是当我们启动的福气发现了你的程序发生变化了,这个时候他做一个重启,对还是不对? 是这样吧,也就是服务器发现你的程序发生变化了,他在做一个内部的重启。这时候问题来了,你原来的服务器是独立的,是通过配置的形式 加载了你的当前运行的项目,现在不一样了,你的服务器是 spring boot 内置的,你现在的服务器啊,受 spring boot 广控,你也可以说是受 spring 广控。那现在你的服务器还能感知到你的程序发生变化吗? 你的福气自身就是这里边的一部分了,所以说他感知不到,那要想让他感知到怎么办? 必须得在 spa 容器上做文章说的简单点, spa 容器里边有这么一个汤姆凯特的对象,专门用来程序的,还得有那么一组东西 帮助我们去监控你的程序变没变,如果变了,好,我让这个汤姆凯特的福气给重启一下, 能理解什么效果吧。哎,因此在这里边就变成了,要想加热部署的功能,必须得在容器里边添加新的设置, 那怎么做这个设置呢?注意, spen 布特给我们开发了一个全新的工具,他帮我们来做这件事,需要添加一个坐标,哎,提到坐标该写哪?同志们, 就一个位置,是不是得写在泡沫的 x ml 里啊?哎,在这里面写啊,咱们给他加上一个开发者工具 dependency, 来一个 spring 布特杠 d e v 开发者 diw upperment toss 开发者工具。好,这就是启动热部署的工具。明白,把 坐标加上,不要忘了一件事啊,刷一下工程,你要么在这个地方刷一下,要么在这刷一下都行啊,一个意思,你要不刷这个坐标上不来啊。 现在呢,这个坐标已经加载上来了,你可以到这个没问里面去查看。这个坐标加载上来没有啊,哎,是不是已经上来了?接下来咱们就来 看这个功能是否有效。来,回到这边,我先把它改成一行,重新启动一下啊。这是我们加完开发者工具了,重新运行这个项目了, 再来运行。运行完以后呢,这个启动日志我们并不关心啊,等他起完了以后,咱们给他克令掉就行了。 然后我们到这边来,我们再来点一下。编辑,好,先来看这次是几行的,一行的 没问题吧,可领掉,然后我们再给他复制两行上来,我们再来点击,期望于这次出三行的, 我们点击后发现出没有?没有,他还是一行的。为什么?说一下在 spring 布特中,你的程序发生变化以后啊,还需要一个操作才能够让他启动热部署。这个操作在哪?在这个位置 beauty 里边有一个 beautiful project, 构建项目快捷键, ctrl f 九来把它清掉,我们点击 bude project, 注意观察下边有什么变化。 首先右边现在在读条对吧?哎,我们会发现日志发生变化了,哪变了?他又重新加载了 spa, 啥意思?重启了?明白,好,我们再来去点击这个编辑走来看这次 几个是不是就变成三个了。来,趁热打铁,我把它再删掉一行,然后接着 biu 的一下, biu 完以后,你就观察日志首先有没有什么变化啊? 应该是锁在上面了,他下边又运行了一次,你看这个图标又跑到最下边了,我把它清掉,然后我们再来去让他点击查询,走,看看这次是不是变两行了。好了, 到这里我们知道了啊,闹了半天,热部署是可以加上的,但是需要你使用这个构建项目的命令来 激活他。回到咱们资料上来,这就是咱们这一节要讲的如何启动热部署。第一个关键因素是要启动开发者工具, 把这个坐标给他加上。第二步,激活热部署,使用 ctrl 加 f 九快捷键就行。啊。 在这里边呢,需要给大家说一下,这个热部署的整个过程还是比较复杂的,这里边给大家介绍两个过程,第一个叫做重启,第二个叫做重载。 重启的时候他会加载哪些东西?是自定义开发的代码,包括类页面,配置文件,这些全部都属于自定义开发的东西,这是重启整个过 过程,叫做瑞斯大过程。而我们的虫仔看好他加载的是什么?是我们的架包,明白,你里边有很多架包,也有很多自己开发的东西,但是这两个东西 在进行加载的时候是不一样的,哪不一样呢?来注意看,对于重启加载的东西, 他加载的是刚才说的这些东西,他在什么位置加载的?一个叫做瑞斯达类加载器的地方加载的。换句话说,我们自定义开发的东西所在的位置在哪?在瑞斯达类加载器。而对于我们的驾包,他会有变化吗? 不会有变化,你很少说我现在启动一项目,我价包变了,你要么是换了个价包,你不可能说价包 变了,对吧?比如说我用的二点五点四变成二点五点五了,这可以,这是换价包,但是二点五点四的价包内部是不会变化的,所以说他把这类东西放在了一个叫做被死类加载器的东西里边。 这样的话我们热部署需要不需要把驾包也重新加载一遍呢? 不需要明白。所以说我们的整个热部署功能仅仅代表的是瑞斯达的过程,而不包含瑞露的过程。而我们的一个程序第一次启动的时候,他既有瑞露的过程,也有瑞斯达过程, 把这两个东西区分开。然后你再看我们这一节讲的热部署,它代表的是哪个过程?是瑞萨的过程。 到这呢,咱们这节就讲完了,这节给大家讲了两个东西,第一,怎么样启动热部署?首先开启开发者工具, 这样才能够进行热部署。其次我们使用构建项目的操作,也就是这个快捷键 ctrl f 九的操作来启动热部署。 在进行热部署的过程中,他加载的是什么?是我们自己开发的这些资源,而不加载什么加的资源,也就是你加载那些价包,他是不加载的。 有关热部署的启动呢?咱们就说到这,那这个时候大家就会发现一个小问题啊, 我们呢现在去启动一个项目,我们可以点这个重启,让他重新加载,我们也可以使 用 biu 的里边的这个 biu 的普杰克的让他进行热步数。大部分人觉得我点他和点他有区别吗? 没有区别啊,我觉得还好啊,但是根本上的问题是他俩启动的时候加载东西不一样。那这会有人就说了, 哎呀,你就不能做的再智能点吗?你能不能让我别点这个东西,他就能自动进行热部署呢? 那必须可以吗?怎么做呢?咱们下节再讲。

各位互联网的小伙伴大家好,我是黑玛丽老师,这一次呢给大家带来一个加 we 企业及开发中实用性非常强的技术课程,叫做 spec。 对于斯布林布特这门技术来说,市场上的学习资料还是蛮多的,那我为什么这次要做这门课呢? 主要的原因呢?有这么以下几点吧。首先斯文布的这门技术,它是一个综合性比较强的技术, 我在看的很多资料里边,对于知识的杂柔性做的特别的强,比如说入门操作、基础操作,实战操作,原理性的知识,包括一些文档的查阅,混杂性很强,对于初学者来说并不友好, 而对于高端选手来说,也很难快速找到自己想看的东西。针对以上所说的这些人群的划分呢?在这套课程我进行制作的时候,就首先把它分开,先定位出来我们的关注是什么样的层次, 你是小白啊?还是初学者还是开发者呀?先把这个想清楚再去做课程,才能够真正的帮到对应的人。那什么是小白呢?就是我都没有听说过,此生不得,或者我听说过从来没用过, 这就是小白用户。那什么叫初学者呢?我用过四倍用布特能做一些基础的操作,比如说市场上现在主流的 ssm 开发,我能够做出来,这叫初学者。那什么叫做真正的开发者呢?我能够用四倍用布特整合市面上几乎常见的 技术,这就是一个标准的开发者。所以我在做这套课程的时候,会针对三种不同的人群设定不同的学习内容,不知道现在在听我讲这些内容的你到底是哪个层次的呢?如果你是小白用户,扣一。 如果你是初学者,扣二。如果你是开发者,扣三。如果你是 spaper 的设计人,拜托你扣六六六。让我也了解一下我们现在的小伙伴在学习的时候是什么样的一个人群。 我把学习者分成了三个人群以后,我就要对三种人群设定不同的学习目标,以便于每一个学习者在学习的时候很清楚的知道自己应该达成一个什么样的效果,同时也知道自己学完以后能力应该有一个什么样的提升。 那在这里呢,对于小白用户来说,你先要做到的就是能够初步的掌握 spring 布特的程序开发流程,知道这个程序怎么做。 在学习完以后,能够做标准的 s s m 整合,是基于四步用布特的 s s m 整合,这就是小白用户应该达成的一个目标。 而对于初学者来说,或者学完了小白对应的这些内容以后呢,那你就要为自己提升一个目标要求了。比如说市面上常见的第三方技术,你都可以把它和 spen 布的融合在一起工作,也就是 spenbot 与第三方技术的一个整合方案。 其次呢,要积累基于 spa 用布特开发的实战开发经验,这有什么区别吗?实战开发会遇到很多实用 性的问题,对于初学者来说,学习完你应该在这方面有所提升,而对于标准的开发者来说,就是大部分的技术我也都能整合了,我也积累了一两年的这种开发实战经验了。 那么在这套课程中,我期望于你能够提升自己对 spen 与 speng 的原理的理解层次。 知道哦,原来这里边他是这样设计的,同时他内部是怎么样做成这样效果的?如果有一天在出现了全新的技术,你能够驾轻就熟的去使用这些技术,对于开发者来说,学习这道课程的目的就达到了。 以上这些呢,就是涉及这套课程的一些初衷,希望各个层级的学习者能够学习整套课程以后有所收获。对于这样的 一套课程,要想设计的让每个层级的人都有所收获,那要学习什么内容呢?在这套课程中呢,把整体课程内容分成三个篇章, 基础片、实用片、原理片。其实看了这三个章节就知道,对应前面三种不同的学习者, 在使用片中呢,又分成运维使用片和开发使用片,也就是说 super, 其实有一些内容是与运维有一定的关联度的。 对于每一篇,我都设计了明确的学习目标,希望大家在学习的时候带着目标去学习,并且在学完以后,根据目标去教练自己。在这段课程学习完以后,是否真的掌握了相关的技术。在基础篇中呢,希望 大家修完以后,首先能够创建 speling book 工程,并且能够基于 speling book 完成市面上现在最常见的 ssm 整合。 而实用片呢,要分成两块,对于运维使用片,希望大家能够掌握死兵不得的多环境开发, 同时呢,能够基于林一克斯系统发布这个不等工程。大家都知道,我们的加完一程序其实最终都是在林一克斯福气郎跑的,所以在林一克斯操作系统下发布不等工程是大家应该掌握的, 然后呢,给大家说一说,在线上的时候,如果出现了某些问题,你应该怎么样去灵活的解决,这是我们在运维使用篇这一部分学习完以后,希望各位学习者能够达成的一个目标。而对于开发式 用片呢,就特别简单了,期望于每位学习者能够在开发使用片学完以后,能够任意的整合第三方技术,这样你用布特技术再和其他的技术配合在一块工作的时候,就会变得得心应手。 在最后一部分原理篇的学习中呢,希望大家能够首先掌握布特内部的工作流程,知道怎么回事,然后理解布特到底怎么和第三方技术在一块整合工作的,这里边会有几个比较重要的概念,到时候咱们要细细的展开讲。 最后一个就是终极目标了,如果你能够整合所有的第三方技术,也理解了他整合第三方技术的内部工作原理,那你能不能自己来做这种整合呢?这就是咱们的原理 片的终极目标到账呢?就把这三篇对应的学习目标呢给大家说了,也希望各位在学习的过程中不断的去鉴定自己,看看自己学完以后是否达成了这样一个目标。 那在这里边要说一点,要想学习 spen boot 这门课程,达成上述目标的话,其实对于各位学习者还是有很高的要求的,为什么 他不是一个零基础入门的技术,所以要求你有一些潜质知识,而且还很多,对基础篇来说看起来还有点恐怖,除了最基本的基础语法, 我们在基础篇的时候要完成 ssm 整合,那么 spring springmvc 包括买 baces 或者买 base plus 这些东西你要先学会,如果这些东西你都不知道的话,你做 ssm 整合恐怕是有难度的。 面对这种情况的话,我们该怎么解决呢?很简单,评论区第一条提供给大家大量的学习资料,里边就可以找到相应的内容,同时呢,我后期赶赶工再给大家把这些内容呢给制作出来,也便于你的学习。 那么在这里边呢,你要知道我用到哪些东西,如果你现在已经具有了相关的知识,你就不用再看了,比如说在 spa 与 spa mvc 这些内容中呢,我要求大家知道 spa 是用来管病的, 能够基于 range for 来实现页面请求交互,假如说这两还你 ok, 哦了,你就不用再去看了。 而对于买 bits 与买 bits plus 来说简单,你只要能够做最基本的 crud 的功能就 ok 了。 不知道各位小伙伴对于 speing, spring mvc, my bates 与 my bates plus 这四个技术掌握的如何? 如果你掌握一个扣一,如果掌握两个扣二,四个都掌握扣四,让我也知道一下你们现在掌握到了一个什么程度。接下来呢,我们要做与数据库相关的操作,基础的买 celco 的知识你要会,最基本的 crud 功能你要会, 这就够了。我们做的既然是外边程序福气,你也得懂福气与外边工程之间什么关系, 福气的基础配置你了解哪些?比如说最基本的端口我要换一下,你连端口是什么都不知道,那你在听这个课 的时候可能就是一脸懵逼的进,一脸懵逼的出去了,所以说这些东西需要你潜质知识知道一些,而 sprobe 它的整个过程中使用量最多的东西其实是没问, 他的很多功能实现都是基于没稳的一些基础操作进行的,没稳里边什么叫依赖范围,什么叫依赖传递, 什么叫排除依赖,什么叫可选依赖以及继承相关的内容,这些东西是你要会的。最后一个呢,要说一点外吧相关的技术,因为咱们在基础篇最后要做一个 ssm 的小型综合案例, 要用到页面技术, will l 们的 ui 这些东西你也要会一些,如果说最基本的发一个义不请求你都不知道怎么发,那可能到那个位置的话,只能停 倒,倒数第二个内容就停了,因为最后一块我们是要把页面加入的到这里呢,这就是基础片所要依赖的前置知识, 看起来还是比较恐怖的啊,希望各位小伙伴加油。如果哪些内容有短板的话,可以在评论区第一条找到相关的课程资料,进行一个快速的补充学习。 基础篇学完以后,我们要学实用篇了,实用篇依赖的东西就稍微有点特殊了,因为我们实用篇中有一些与用为相关的知识,所以说要求大家对 对我们后期操作的 linx 操作系统有一定的认知。最简单的指令你得知道不能我敲一个指令了,你不知道我在干什么。同时呢,你要熟悉一下 linx 的一些系统目录 结构,不要在那个地方一看,哎,你这个目录怎么没有打 c 冒号或者 d 冒号啊啊,这一看,这就学习起来就比较有困难了,最基本的目录结构你要知道是什么样的,这就够了。 而我们使用开发片中的内容,要去整合各种各样的第三方技术,那我这里边只是列了一些这些技术,如果你不懂的话,没关系,可以等到你学完了这些东西再回来看这一小块就行了。 实用的技术有很多,其实不需要全部掌握,只需要掌握其中某一个分类中的一种,就可以把这个课停下去了,这就是实用篇相关的前置知识。 最后一片原理片也需要一些潜质知识,我们要讲他的内部工作流程,最基本的死病加载病的各种方式,你要了解死病有 各式各样的加载并的方式,布特中用到了其中的几种,如果这些方式你不知道,你在看布特的圆码的时候,你可能就会还是那种感觉,一脸懵逼的紧,一脸懵逼的出。所以说在这里边还需要你有一些这样的基础知识, 除此之外,还要知道 spa 用容器的底层的一些工作原理,能够阅读一些简单的 spa 用的底层圆码,这样呢有助于你学习这样的课程。 那有人说啊,这些东西我不具有啊,还是那句话,评论区第一条在里边找黑马程序而推出的相关系列课程, 同时后期我也会加紧的录制一些前置的这样课程,开放给大家去学习,这样的话能够促进你更好的去学习布特这门课程。那接下来咱们就一起学习此布特这门技术。

数据层呢,咱们做完了,那接下来咱们就要做业务层, 对于业务层的制作其实有一个误区啊,很多开发的人员呢,并不太关注,在这还是给各位小伙伴说一下,就是业务层接口与数据层接口在定义的时候,他们有一个本质的区别, 业务层的接口关注的是业务名称,税层接口关注的是数据库相关的操作, 举个例子,下边这个操作叫做 logue in 登录,相信你只要搞开发,你能看这一块课程登录这事都明白,登录一般传什么用户名和密码,就这俩字段就够了。这个名称在业务层的接口上叫 logue in, 但是到数据层的接口上, 他一般不叫劳格音了,他通常会根据接口名称定义成,让所有的开发人员看一眼就明白。比如说赛拉给他查询,按什么查,按 u 字内幕和帕斯沃特查,就是根据用户名和密码去查询,这是数据层接口对应的名称, 而业务层接口对应的名称就叫捞给了。所以说这些东西啊,对于各位开发者来说,还是要进行一个绝对的区分的,当然你说我都写成一模一样行不行? 没有问题,只不过就是写出来以后吧,就是通过这些名称的定义,可以看出来你对这种东西的理解是一个什么样的一个层级, 包括返回职类型的设定,其实也有一些门门道道的。那接下来呢,咱们就来做这个业务层借口来进入到 第二下啊,咱们来做这个业务层接口操作呢,其实并不难,有一些东西呢,还是需要了解一下掌握的啊,来创建一个业务层接口, so v 四下边不可 s e r v s e 不可 s o v s。 对,业务层接口设定的操作名称,如果是业务方法,那就根据他的业务名称来定义。如果是非业务方法,比如说基本的增山改查,那你就直接写增山改查就可以了。 比如说 c 五操作,他要传什么参数?传一个实体类,对吧?把这个东西写上,那返回值类型怎么定呢? 其实这个地方合理的定义是波力,就是操作结果是否成功定义成一个波力类型的。这个名称选错了啊,应该接口这是 保存,下面修改直接叫阿,不对他就可以了,删除叫 dylet, 抵赖他删除。你可以传实体类,这样你可以做一些数据教验,或者干脆简单点直接传 id 删就行了。 而查询类的东西,先把查询的结果定义上,比如查单个返回实体类,我们叫 get 白 id, 这 ok 的啊,然后查全部的话,利斯的兼括号不可返回一个集合,然后叫 geto 吧,这都是比较常见的名称。 有一些人呢,喜欢用这个 get, 有些人喜欢用 slex, 比如 slex 哦,有些人呢,喜欢用这个 carry, carry 都可以啊,那还有什么东西像分页查,按条件查都可以给他配上。咱就先写这 五个,把接口写完了以后,接下来去写他的实现类,扭一个全新的类 mpl 包下面的不可思维思 impl。 好, 在这写完以后呢,我们让他实现不可思维思接口,然后实现所有的抽象方法,在这先写上一个艾特。思维思这个地方是用来定义什么的? 是用来把它定义成一个业务层对应的并啊,如果不太清楚的小伙伴可以去到评论区第一条里边找对应的课程做学习啊。 那这里边呢,我们就要转掉数据层,就要进行注入了,艾特凹凸外,然后定义一个不可的 dao, 然后不可 dao。 好,现在是 数据层的接口也有了,那就可以直接转掉了。点那边叫啥名呢?刚才已经写过了,音字啊,他啊,他不叫 c 五,你看数据层的接口名称,叫这个业务层的接口名称,我现在是不是没有对应上,对吧,这是一个常见的现象啊。 那在这我蕊叹这个东西为什么不行呢?因为对于税层的操作,他返回的结果全部都是影响行技术。 说的简单一点,就是你这个操作影响了多少行增商改都是这样,所以在这你要写上一个大于零, 当你的影响行技术大于零,我认为是真操作成了,如果是等于零,那就是失败了呗,那就是假啊。那下边的这些东西都简单了,然后阿不得他 delet 都可以快速的去写啊,把这个也给他改一下。阿不得他呢, 叫阿不对的白 id。 刚才见这个东西了啊, delet 呢,叫 delet 白 id, 但是后面这是个 id 参数换一下啊。 下边的内容,这就比较简单了,直接不可丢,点 s like 的,把 id 传你的 id 就行了哦,发现了一个小问题,这是不是忘加参数了,来复制一下,把接口动一下啊。忘了,这事 文档助师该加的加啊。 id 好,最后一个。这个也简单,不可低,也有点斯拉克多利斯等传一个闹进来,这是不是就齐了?你说那俩操作呢?先不着急,到这业务层的接口就已经定义完了, 那下边我们就可以去测试一下啊。其实这个测试反而简单了,我们创建一个 so vs 对应的包, 下面来一个不可 service test case, 然后在这里边咱们去给他加上 spring boot test, 然后在这儿来一个 at test, 然后里边喂的 test 来个 get by id 吧,来把这个东西写上。为什么写这个简单的不用准备参数啊,测一下就行了,注入我们的业务层对象, 然后 atal to weather, 然后在这儿不可收一次点儿 get by id, 咱们查一下。四这条数据,有人说这个地方还要不要打印呢?要,为什么数据层测试的是 执行出来结果就 ok 了,但是到了业务层,你看的不是数据层那些日志,那些只是帮助你调试数据层操作的啊,在这的话,他业务层里边的功能有可能还有其他的操作,所以在这一定要把这个东西给打出来看啊。 咱们最后关注的是他运行完以后,这个数据能否正常的出来,你的业务层功能才算是成功。 这里边呢,你可以把所有的方法都测一遍啊,这是没有问题的。行了,现在我们看一下这个操作是不是已经运行完,这个东西都出来了, 那接下来你要干的事情呢?就是把他所有的操作都挨个测一遍就行了,这时候你可以稍微偷一点点懒啊,怎么偷懒?来,把这块东西都给拿过来, 然后稍微改一改就能用啊。第一个已经不需要了,复制一下,然后到这下边 哪懒了,就是这些数据准备你不用做了,明白吧?然后接下来却用我们的 siris 去调一下对应的那边的 c 五方法,好,一个写好了,接下来 siris 调我们的阿不对的操作, 两个写好了,接下来, sorry 死掉,我们的 delet 操作,三个写好了,这个一会我要改 id 啊, sorry 死掉,我们的 geto 操作, ok, 这个地方就没有这个参数了啊。然后关于给他配几操作,这个就不要了啊,这两个不要了,给他配几操作呢?咱们还是去把他添一下吧。给他写一下啊,给他配几,他返回是个 哎。配几对象吗?就写个哎配几就行了,不可。然后来个 get 配几,对象里边要两个参数,哪两个参数? 第一个是当前页码值印的 ceo 啊啊 ent 卡润的配计,还有一个每页显示数配计 size 来把这俩参数加上以后这个方法业务层时间里边还没有呢。给他调一下啊, 来点击, ok, 然后在这个地方我们写上一个吊用不可丢点 slack 的配件,然后把你对应的数据给他封好扔里就行了。哎,配几对象配几,等于你有一个配几,然后在这给他传上一个卡润的配几,还有一个配几赛,这个倒一下包啊。 完了以后把这个配集对象给他传进去,再传个闹,别忘了这个闹是那个查询条件啊。这个地方呢,你直接蕊腾他也行,或者说你在这还是让他执行完,最后蕊腾这个配集对象也 ok, 反正都是同一个东西, 然后到我们这边来就可以直接写这个东西了。在这呢,这就是 solis 调用了啊,不可, solis 去调它,方法名已经变了,叫做 get 配计传的是什么?传的是两个数据,一个二一个五啊,上面这个就不要了啊, 他操作完以后呢,会得到一个对象,我们把这个对象给拿到就行了,然后接下来这些东西也都打印一遍,这就 ok 了,来,咱挨个的测一遍啊,看一下查询,单个 测过了,新增运行一下。运行完以后我们到这边去刷一下业务层的方法,必须要写测试用力的啊,还没起来完,速度比较慢, 行了,来刷一下是不是就出来了?然后这个数据是十八,删除修改,我就测一个就好了啊,修改给他测一下就行了,十八在这改成 abcdefg, 然后这边运行一下,剩下来的查询全部。这个 还测吗?就不测了,你们下去自己玩吧。这个已经写好打印了,我就再测一下这个东西就行了,再来运行一下刚才的阿,不对头,已经测完了,然后咱们可以去看一下啊,刷新一下,可以看到这个地方改成没有,是不是已经改成了,原来是一二三,现在是 a 到 g 了。 ok, 再回来看看这边分页查,这个是不是已经出来了,六七八九十,我这是不是查的是第二页,每页五条啊?哎,这些功能啊,到这就已经全部都测完了,来回到咱们的资料上来。 业务层的制作呢,其实相对来说还是比较简单的啊,首先这些方法挨个的都定义出来,然后时间累,这就不再说了吧,需要注意点啊,这个地方为什么不直接锐腾他,而要锐腾大于零呢? 就是将我们业务层的接口啊,定义为操作状态,就是操作完成了没成,而不是你影响多少条。那是数据层讲的规则,业务层都是逻辑规则啊,这是增商改的操作,查询的操作,根据你获取的数据返回对应的东西就行了。最后呢, 还有一个测试类,这个东西大家务必要去做啊,对于这种查询类的东西,你还是要把他的结果打印出来,不像那些增商改的东西,你可以刷数据库去看你的操作成不成,而这些查询类的还是得让他打印输出 到账呢。咱们业务层的接口呢,就做完了,一共就两块啊,一个是业务层的接口定义,按照业务名称定义啊,税层的他俩一定要区分出来。 而对于我们的测试这一块功能一定要做,这一块东西是保证你的业务功能是否正确的,这个你要不做,那我告诉你,回头就陷入到无穷无尽的 bug 中了, 谁能保障你写的程序永远没 bug 呢?对吧?来回到咱们的代码上再来瞧一眼啊,现在咱们 做的东西是什么呢?业务层的接口,业务层的实现类。那你就说如果我现在不做不可模块,我做优则模块,这个东西写出来有基础含量吗? 这改这改这名称,改名称,改前面不动,这改优字,优字优字,其他什么都不动,一点技术含量都没有。那对于这一块呢,也是一样的。 那我想问一下在听课的各位小朋友,你们写这个东西写吐的扣一,没有写吐的写起来还挺享受的,扣二,我看看有多少人现在写这个东西写吐了。 其实啊,搞开发的对于这种东西就是模块中的通用功能啊,很多人都以 已经写吐了啊。那这种东西能不能简化点呢?既然都差不多也很相似,就不能有人帮我提前把它写好吗? 那必须得有嘛。谁呢?咱们下一节再讲。

入门的案例咱们做完了,那下边我们就要稍微的研究一下布特的配置了。说的简单一点, 你之前做的那个工程访问的端口是八零八零吧?现在我不想用八零八零了,我想用八零,你是不是要改一下?这时候问题就来了, 你以前用自己配的陶门开的服气,你改端口有一个对应的配置文件, xml 的文件能改,现在呢?内置的陶门开的服务器配置文件都没了, 你改哪了?这是不是就得说说不,他怎么改他的配置了?这一章咱们就研究这个,要研究他的配置,你都要研究什么呢?第一写哪?第二写什么? 第三,格式上有没有什么要求?这些是不是都是要你考虑的问题啊?所以这张咱们就围绕着这些内容学习,提前声明一点啊, 配置的信息还是有很多的,我们在基础篇里边讲一部分,到实用篇还要讲一大部分,所以说并不是在这一次性讲完的啊,他的配置还是有好多的。 来吧,咱们下面就进入到配置的学习,提前说一点。后边的代码演示呢, 为了让大家拿到的最终圆码看起来比较舒服,我会尽量将相同的内容圆码写在同一个工程,你也可以说是一个模块中,这时候就带来一个问题,我要大量的创建这样的模块,尽量让每个模块中包含的 知识单一,如果你想回头看好看,问题就来了,怎么快速去创建模块呢?就要给大家说一下这个问题了,复制工程 原则是什么?一、保留工程的基础结构,就是大架子留下来。二、抹掉原始工程的痕迹,你前面做的什么东西,你后面不要留着,别相互产生影响。你前面做了个 a 操作,然后留下来了一个配置, 结果你在复制出来的时候,这个配置留下来了,你在做新的工程,想做某些东西的演示的时候,你发现坏了,相互影响,所以尽量要抹掉痕迹,这是两个基础的原则。 接下来咱们就来做这个事。先说一点,我教给你的是我的个人习惯,我觉得速度上来说也是比较快的,并且操作上来说也是比较方便的,所以 说这仅代表我个人的习惯,如果你有更好的习惯,你可以跳过这一届来,咱们去看一看。进入到保存工程模块的目录中,现在这有四个工程,你呢可以随便选一个作为你要复制的那个模板 来,我就选这个零二了啊,为什么呢?有原因的,零一我修改过,零三是用阿里的那个创建的,不太方便。零四这个不是用布特的原始创建方式创建的,也不太方便,所以我就用零二这个,其实你用哪个都可以来粘贴出来, 粘贴完以后呢?因为后期我要大量的去复制他,我把它做成一个模板文件来把它改一下啊,零 x 下滑叉叉叉叉叉。好,这就告诉我,回头复制就复制他, ok 吧,后 免得演示。再有创建新模块的时候我就不做了,直接打开,我就告诉你复制的就是他,你知道就行了啊,然后把它复制一下。进去以后第一件事啊,看清楚,我刚才复制了这个名称进来第一件事,泡沫,先打开 右键编辑一下,把什么给改了,阿提法克的 id 一定记得先给他改了,然后把它关掉啊。保存了,然后这里面这么多东西你不想要全部干掉? 没有用的东西,你复制的模板中有,回头你就会一直携带啊,他给他不要留了,没问,生成的东西不要留。 最后这个文件是矮点的配置文件,有兴趣你可以打开看一看啊,这里边都是与这个工程配置相关的东西,不要他关掉, 把它删掉,删完以后回头再创建的工程,只要加载到我们 id 中,他就会自动生成一个全新的配置。好了,到账了,这套结构就算是做完了,是不是真的做完了不好说,但是现在来看是 ok 的。 你就记得最终剩个 src, 剩个泡沫就行了,退回来,别着急用复制粘贴,改成我马上要用的零二, 来一个贝斯 con f iguratln 贝斯 configuration 基础配置 ok 吧,现在这个才是我要的。记得啊,改完以后复制一下,进到这里边来, 右键点他选择编辑,先把他的工程名给换了,这一步你要不做进到矮地中会很麻烦,搞不好你得 重新做啊,因为这个东西影响到矮地儿读取配置这一个操作。先把它改好, 这改完以后,现在再进到这边来,就是这个样子了,这个回头我留着用,现在我要用它下面进到矮地里边去,我们先去打开这个模块管理,然后添加导入一个全新的模块,然后进到这里边,我找到这个零二,点击 ok, 然后费内时点击确定。注意啊,如果之前你的泡沫文件没有改这个名称,进来第一件事先把这个名给改的和他一样, 不然你这一刷新就出事了啊,来,我刷新一下,走。你好,现在这个刷新已经完成了,没事了,但是我们看左边,你能区分出来这是 是五个工程或者说五个模块,右边呢,你会发现有两个零二,对不对?为什么这样?解释一下,打开两个泡沫文件,新复制出来的这个泡沫,还有零一零二中的泡沫。介绍一下,这边这个名称是什么? 看一下,在这里边有两行,一个叫内幕,一个叫迪斯科雷布逊。前面我给大家说过,创建时候这俩值其实是可以抹掉的啊,迪斯科雷布逊还好,关键是这个内幕,而右边呢也有这个内幕,迪斯科雷布逊这边显示的名称是这个内幕名称, 这就是问题,你现在分不出来到底谁是谁,怎么办呢?把他这两项删掉就行了,没有什么实际的作用啊。目前来说没有用。来我把他删掉回车。删完以后呢?看清楚啊, 现在是零二贝斯 cofffiguration, 我刷新一下,走,你是不是已经改了?哎,就这一点差别啊。那这边这个名称呢?其实呢,你也可以把它删掉,但是现在删不删已经没有什么太强的意义了,因为我再刷他也不变, 如果没有内幕,他就显示你的阿提法克达 id, 明白为什么这个地方显示成这样吧,你看现在别别扭扭的,这个地方零二是不是就在这中间呢?那怎么办?你要真是一个比较讲究的人啊, 来这样,把这个东西给他移除掉,确认,然后 oplay 一下, ok, 好,现在没了,然后再把它添加上去,导入进来,再选一下, ok, 非内饰点击 ok, 现在是不是就跑下边去了啊?这个东西不用纠结啊,不重要,这是 idea 内部的他的一个 所以结果导致的现象,因为我第一次加入的时候他就叫这个名,所以他俩排,你改完了,所以你也没变,现在,所以你就变了啊。这个 id 这个工具其实还是有很多 bug 的,咱不去纠结这些东西啊,反正你也没有什么特别好的选择,就在这下面凑合用吧。啊,好, 到这呢,把这件事做完了,我们是不是就可以往下做了?别着急啊,回头再说一下这个模板文件打开进去,别忘了这个泡沫里边他的内幕和迪斯科布群还没删呢,回头你复制出来,每一个都有这问题, 在这把这个删掉啊,保存一下,回头这个模板你用的时候就比较的安心一点了啊。好,到这呢,咱们这个复制的工作就做完了,我再提醒一句,后边我在需要工程的时候 直接就使用这个叉叉叉复制出来,把名改好,直接用了,再打开里边什么样,就是一个纯净的环境带有什么带,有一个这个东西 卡出了里边写的内容,后面都打个二,那咱现在呢,就把这个二给他删掉啊,然后我们先测一下他能不能用,保证后面再做实验,看效果的时候 尽量留下来东西不对你产生影响啊。来,咱们准备做,看一下这个名是不是好长,挺烦人的。这个我不太喜欢,给他重构一下,改下名, 然后把这个删掉,就留个,哎,不对,开心挺好啊。 refact, 然后点击 ok, 这就是他改完以后,关联的文件都发生变化了,然后右键选择运行,运行了 以后,我们看他启动的时候,你看现在启动的这个名称上面是不是还有这一串东西啊?为了方便啊,我把这个东西呢也给他改了, 然后把这个东西给他去掉,爱不来开去。后面呢,这些东西的修改呢,我都一次性完成啊,就不再给大家演示了。点击 ok, 这个名改了,他说他已经存在了,讨厌,直接写一个贝斯 c o n f i g u r a t i o n 好吧, 点击阿布拉 ok, 行了,现在这个名已经改了啊,没事,这边测一下,看看他通不通, 到这边刷新一下走,是不是这个东西已经掉了,现在启动的就是用我现在这一项,这些东西呢,你先确认好没有问题,后面再做实验的时候你就知道这个东西怎么来的了。回到咱们的资料里, 这一节呢,给大家说了怎么复制工程,其实就是让你做一套模板出来,然后回头快速复制粘贴, 别忘了那个 rt fact id 也要改啊,快速的回顾一下。第一,在工作空间中复制对应工程,修改工程,删除与 id 相关的配置文件,就那个 im l 文件啊,到最后留什么? src 和泡沫留下就行了,其他的全部干掉啊, 然后修改泡沫中的阿提法克的 id, 新工程的模块名相同,这个很重要啊,这个 id 里边有个小 bug, 你不改你怎么加进去的,你怎么把它删掉,然后改完了再重新加一次啊,很麻烦。 然后下边为了保证右边没有那个管理那块刷出来的名称,你有区分度,把这个内幕标签给他删掉,你不删也没关系的啊,就是告诉你区分度高。 最后啊,建议你保留一个备份工程供后面使用,这是我们学习期间呢尽量做的一件事,你要到后面开发哪有这种事啊,一次性的工作,对吧?好了,到这里关于复制模块的操作呢,就给大家分享到这。

刚才啊,给大家说了一个小问题,在写这个配置的时候,没有给你自动弹提示对不对?出现这个现象的小伙伴扣个一,看看有多少人遇到和我一样的问题了,来给大家说一下。 现在啊,我们在写这个配置的时候啊,一定要注意一个问题,之所以能跟你谈提示,是因为 spring boot 在矮地儿环境下给你提供的功能失效了。什么意思呢? 谈提示是 idair 这个工具给你带来的,不是 spen 布特给你带来的,明白吧?他之所以失效的原因是什么呢?在这里边你写他有提示,比如说 b a n n 亚,有到这边写,他就没有提示 b a n n 亚,没有 说明什么,他不认为这是个配置文件,那你让他变成个配置文件不就行了吗?怎么变呢?来看啊,首先选择 fire 这一下,其实我更愿意点哪点,这啊,都一样的啊,如果你的 id 中找不到这个按钮,去那边找, 在这里边我们一直操作的都是 models 模块,找下面 face, 在这里边找到你现在配的这个工程好找到了吧,这是不是零二这个,然后看清楚,在上面这些按钮里边 有一个按钮就是塌了,这是 spa 的典型的绿叶子的标志,右下角这个图标就是不 他的那个标志,点击进来以后呢,这列出来了所有的配置文件, 你说,哎,他怎么只有一个婆婆的意思,没有那俩呢?这就是不能用的原因呐,加上呗,怎么加?别告诉我你看不到这个加号。来点击,然后在这里边找到慢里边的瑞骚 cs, 把这俩文件选中,然后 ok, 看见没有,这叫婆婆 tas 格式的配置文件,这叫 yaml 格式的配置文件,再点击 ok, 点击 ok, 好, 现在把这个东西给关掉,我先不关,你注意看他的图标,现在长这样吧,再来看看 spen 布特的配置文件格式长什么样。好,我把它关掉。注意啊,就这一次啊,你再看 这边都已经一样了,我再打开是不是标志都变了,你看,现在就变成这样了,来吧, port ok, 明白吧,这样就可以配上了,所以说如果你要不能用的话,不要慌,这个时候啊,还会有一些小伙伴啊,遇到一些问题,我给大家说一下啊, 我快速的去构建一个临时的工程给你演示。这个工程呢,我已经造好了,叫做零二 table, 一会要删掉的啊, 现在这个工程里边呢,默认在瑞骚 cs 目录下只有一个,哎,不嘞开心点,婆婆的意思,这是不是初始化的就长这样,结果他手快,直接把这个文件给删了,删完以后呢,他右键创建又一个新的文件,哎,不嘞开心点。 ym l 回车好造了个配置文件,现在大家看到我这个配置文件的格式是布特的配置文件格式是没有问题的,但是有些人创建出来以后会出这个问题,就是这识别出来的并不是一个真的配置文件,还是没有修改之前的那种标志啊, 或者说是下边这种现象你就能看到了啊,比如说右键扭一个新的文件,哎,不嘞开心,结果打错字了,比如说多打个一点 y m l 就变成这样了,然后这个时候呢,他去配这个东西就会出问题,我把这个删掉啊,去配置来点开,然后选择 temper, 然后选择配置,在这里边一看啊,没有这个文件,然后选择添加,在这点击选择这个文件, ok, 这不就成了吗?但 是他去点 ok 按钮,不让他点,会有这种现象啊,如果遇到这种情况怎么办?一、在这个地方,你把你的这个配置文件名挂在这, 这个 ok 按钮就让你点了,这是一种情况,还有一种情况也可以解决这个问题,就是右键在这个地方把你原来的哎,不累,开心点, p r o p r t i e s。 文件空壳给它创建上, 然后再去到这个地方选默认这个东西,有的情况下你再添加这个文件,他就可以用了, ok, 明白,也就是说这个地方啊,艾迪尔的识别可能会有一点小 bug, 你们在做的时候要是遇到这种问题了怎么解决?跟你说一下啊,如果有遇到这样问题的小伙 伙伴,扣个一,让大家知道知道到底有多少人踩过这个坑啊,这些东西呢,其实并不重要,但是你遇到这种问题以后啊,我也知道,咱们同志们自己下去做的时候啊,是特别的痛苦,就死活做不成,基本上就放弃了,说我这个东西就搞不出来, 然后你这个讲的不对,或者说你这个东西讲的不好,有矮地的工具的问题,这个给大家先打好招呼,好的,这一节呢,咱们就说到这啊,这一节给大家说了一个自动提示功能消失以后的解决方案,首先 fare 里边选上项目的配置,然后在这里边 找到我们对应的配置,注意是 spring 这个下面呢,不要选外边的啊,点进去以后呢,弹出的这个菜单里面去选这个布特的配置这一项,然后进到这里 里边,如果现在有对应的配置文件,你只需要点这个加号,然后去在这里边选上你对应的配置文件类型,操作完以后呢,你所有的配置文件都在这列出来,这就有那个提示了, 到账呢。咱们这节就讲完了,给大家说了一下布特的配置文件,如果想进行指定的话,应该怎么指定啊? setting, projects, charge, 然后 faces, 然后选中对应的工程,然后去配置我们的用户自定的布特的配置文件,选中配置文件,然后确定确定确定就 ok 了,这样呢就可以解决你配置文件自动提示的那些属性名不出来的这样一个问题。 到这呢,咱们这个配置啊就基本上会做了,但是不知道大家刚才观察到没有,我们在写这些文件的时, 其实啊这个冒号的后边实际上是有一个空格的,不知道有没有小伙伴试过,你要把这个空格给删掉以后, 这个文件是不能用的,那这是什么原因呢?其实就是对于我们现在写的这个文件呢,他有一个格式, 而对这种文件他的书写上到底有什么要求呢?咱们下一节再讲。

下边咱们就来做这个实体类啊,咱们要操作的表是哪一张?还是咱们前面看的这个 tbl 下滑不坑, 对应的表结构呢?大家应该比较熟悉了,那接下来咱们就来做这个操作啊,来,进入到这里边,我们去创建他对应的实体类,右键扭一个新的类 读慢包。下边的不可实体类。做到这里呢,需要先说一件事情,在这我们通常是先定义他对应的属性,这些东西前面都做过,我就不再解释了,快速做一下就行了啊。 type 内部 d s c r i p t i o n t s cry 不行。接下来的工作呢,做他的 get set, 你呢?可以 用 get 三套的方式来做,但是在我们企业开发的时候,有一个更好用的工具给大家推荐一下, 叫做 loombook, l o m b ok, 来用过 loombook 这个技术的小伙伴呢,扣个一,没用过的扣个二,看看现在这个 loombook 技术到底流行不流行啊? 这是一个什么东西呢?介绍一下。朗布可是一个加瓦内裤,它里边提供了一系列的注解,能帮你简化 p o g o 实体类的开发。 那具体怎么用?说一下。第一步,我们得先到泡沫中去倒入对应的坐标,在这我们加一个朗布克的坐标 lomb, ok, 怎么写呢?这个坐标,其实他的坐标名称还是比较短的啊, lom b o k 对应的包,看清楚这个就行了,叫 o r g 点 project lumber。 在这需要说一点啊,我们在这写完这个东西后,并没有提示我们敲版本,原因是什么?第一,我这已经下好了这个东西,另外一个主要原因是 在这里边收入了朗布克的坐标,所以这个版本有他管理就行了,这是第一步。把这加上以后呢,我们的工程里边呢,实际上目前是没有刷新出这些东西的,我们刷新一下啊, 刷新完毕以后呢,我们就可以到不可里边来说他怎么用了,如果你不想写那些 get set 方法的话,你可以在这用 at get 敲一个 get, 好了,这就有了。来看一下现在这里面具有的方, 你会发现我打一下 get 是不是多出来了几个方法。第一个不是啊,后面这四个方法就已经生成出来了,如果说你这打一个 at set set, 你再看一下这里边 set 方法也出来了,就起到这样一个作用啊, 但是这种东西啊,写起来啊,也是数量较多的,他有一个合并性的注解叫做 at date, 这个坐标就比较狠了,你这一看里边 get 有 sat, 有 tus tree, 他也给你覆盖好了,还有哈七扣的 e cos, 这些东西都给你覆盖好了, ok 吧。但是这个东西唯独没有帮我们去生成构造方法,所以说你要是要用构造方法的话, 你还得自己去做,当然他也提供的有对应的操作, c o n s t r u c t o r constructor, 看这两个,一个 no x constructor, 一个 o x constructor, 把这个加上以后,他就有无餐的构造方法了,把这个加上他就有全部参数的构造方法了,但是我们实体类一般都是用无餐的,所以说就这样就好, ok 吧,上面的这个包去掉啊,好了,到这里呢,实体类就已经做好了。回到咱们的资料上, 在这节呢给大家讲了一个小工具,就是浪布克,坐标在这不再说了啊,常用的注解就是这个艾特得特,当然他还有其他的一些注解,如果有兴趣的小伙伴可以自己学习一下这个艾特得特的注解, 他替代了多少操作呢? get settle, two string 哈,七扣的 e cos 这些方法都帮你重新写好了。关于实体类的制作和浪不可的使用呢,咱们就说到这,这节咱们做了什么东西? 实体类,把它创建出来使用劳姆布克简化了一下开发,关注这个艾特对的注解就可以了。 实体类做完了,那接下来按照企业开发的顺序,下面应该做什么就应该做数据层了,咱们下一节再讲。

下边呢,咱们就按照套路啊,和 radis 一样,咱们先去把这个东西下下来,然后呢去用它 这个安装呢,他的客户端我已经提前下好了,在这里呢,我下了若刚哥 mongo 的安装客户端以及操作 mongo db 的第三方的扣端软件,这下面呢给到大家两款,接下来咱们就来做这个事啊, 关于 mongo 的安装呢,我给了两个包,一个是安装包,一个是解压缩包,都可以,包括那个 rades 也是也有解压缩包,也有安装包啊, 在这呢用这个解压缩的给大家做吧,来把这个东西复制一下啊,复制完以后呢,我粘贴到我的地盘 soft 的下,粘过来以后,我右键给他解压到当前文件夹。解压以后呢,他会出现一个独立的 目录,就是这个目录了啊,等他减压完,这个芒果的安装扣端还是比较大的啊,三百多兆好。把他删了,这个名呢有点太长了啊,看着不舒服,把他删掉,行了, 双击进来。这就是 mongo 的一个 windows 版安装的一个扣端的样子啊,一看并宾纳瑞二斤制,这是他的所有的可执行程序,一会我们操作 mongo 就用这里边的文件就行了,类型排一下用哪些呢?哎,就是用这几个东西就 ok 了啊, 那这里边需要说一点啊, mongodb 你看这个名,他后面是不是挂个 db 啊,他还是一款数据库啊,他有数据存储的位置,但是现在我们应该把他数据存到哪呢?给他定一个位置,在 mongodb 的这个安装客户端的位置,我去创建 建一个叫做 date 的目录,放数据的里边呢, mongo 运行起来,他会有很多的数据文件呈现,咱们在这给他再建个目录,叫 db, 这就是数据存储相关的文件,他还有很多配置啊,不管他了,好,退回来,这个目录已经有了,回到这个并下面 到这,咱们的安装已经做好了,接下来就是把它启动起来,哪一个时代的启动指令呢?就这个啊, mongo d 来, smd 进来,进到这里边来呢,我们去执行这个 mongo d 这个指令, 然后指定他对应的数据存储位置。杠杠,这是加参数啊, db pass 等于什么呢?当前路径的上一层点点代表上一层上一层路径中的 什么?对头,目录里边的 db 这个目录,这就指向到哪去了,指向到了这个目录中的这个目录里边去。来,我们敲回车, 执行完以后呢,他会去初始化这个数据库的一个创建过程,生成了很多文件,这个文件的生成啊,是一个一次性的, 后面就不再会有了,只是改里边东西,如果你把它 ctrl c 停下来以后,这些文件并不消失啊。同时呢,大家可以看一下它的上一层,在这个位置并没有生成别的啊,然后进到这里边来,我们把它再重新启动一次啊。启动, 启动完以后呢,现在这个服务就有了,就像 rades 那边起那个 rades 杠骚儿一样, ok 吧,那这里边呢,描述了有各种各样的信息,其中有一些比较核心的信, 带着大家找一个东西,在哪里?他的端口啊,这样吧,查一下吧, port 端口啊,在这呢啊,找到了,在这呢, 这就是他的启动端口,二七零幺七,一会咱们连他要用他的啊,行了,就看这么多吧。现在呢,这个服务端已经启动起来了, 那服务端有了,我们要想操作他,是不是用他的客户端呢?来再退回来,退到这个 mongo 下到并里边,咱们在这来执行一个 cmd, 然后执行他的客户段,客户端叫什么?就叫忙狗 mongo。 注意这个地方,你可以指定他的服务器地址和端口的,现在用的都是默认啊, local host, 另外端口是二七零幺七,这就可以连 到他的服务器上面去了。对于 mongo 这一款数据库来说呢,使用起来和买 circo 那些东西啊,差别还是非常大的,在这呢不给大家做过多的普及了,我快速的操作一圈就行了。首先 你要操作的它,我们数据库里边是不是有个库的概念,在芒果中也有叫做 us。 一、使用哪个库呢?比如说咱们用 it 黑马库,好回车, 这就切到了 it 黑马库下,这句话切过去以后仅仅相当于我要用这个库,但这个库现在存在不存在呢?其实你可以理解为他是个内存级的,你可以说他存在,也可以说他不存在,因为这个东西现在还没有呢, ok 吧。然 然后接下来呢,就可以操作他的表啊,各种各样的东西了,但是在这个下面操作实在是太繁琐了,给大家 推荐一个操作客户端啊,来,在这里边呢,我给大家带来了两款这样的操作客户端,这一款呢是目前使用起来还不错的啊,下面这个也还 ok 啊, 这个是芒果官方推荐的,当然我觉得这款还是挺好的,咱用这个吧,复制一下,复制完以后呢,到芒果这边,咱们给它扔到这个位置了啊,这是一个解压缩就能用的工具啊,解压到当前吧,它里边还有一层目录啊,解压到当前就行。删掉, 然后把这个东西给他删掉啊。呃,多说一句,大家看到这个一点四点四了吧,这个版本号啊,很有讲究的,你们在选的时候,如果自己到网上下,假如说连不上去,十有八九都是你装的蒙购的版本和这个 工具的版本不匹配导致的啊。来,进到这里边来,进到这里边呢,你就看到这个带图标的这个文件了,双击一下,进到这个里边以后,他该怎么用呢?第一, 他让你先去连接,你要连哪个库?哎,记得啊,这一步就和我们买 circle 操作的时候是一样的,你先创建一个连接 create, 然后进到这里边来。 这些东西呢,你基本上都不用调啊,想调给这个改一下,叫个 logo 吧,本地的,然后这是他的 ip 地址,这是他的端口,什么东西都不用动,点击 test, 你看现在是不是已经连上了,哎,这个二七零幺七就是我们那边配的端口啊。 c 五一下好,然后再去点连接,这就连上了。这个欢迎界面呢,你现在就可以关了,现在就是去操作我们对应的这个库了,然后在 这里边,你看 logo 下边都有什么,有个卡飞格一系列的配置。这里边有我刚才操作的 it 黑马吗? 实际上是没有的,也就告诉你现在这边的这个客户端,我用这个 it 黑马库在内存中他有,但是仅仅集中在我们的内存中,在我们的硬盘上是没有这组数据的,所以在这边你现在就读不到他, ok 吧?好了,到这儿呢,咱们就把这套东西给安好了,来回到咱们的 资料里啊,在这节呢给大家讲了这个 mongo db 怎么样下载安装怎么样起服务端怎么样起客户端,这是带参数的,不带参数怎么起,就直接执行这个 mongo 的命令就行了啊。 对于咱们各位小伙伴在安这个东西的时候,有可能会遇到这样的问题啊,就是你在启动的时候,他会给你弹出一些爆错,比如说由于什么 什么点 dll 文件找不到,然后他没法执行,什么原因解释一下,就是我们每个人用的操作系统啊,都不太一样,这个操作系统安装的时候呢,有可能你用的是一些阉割版的安装软件给安装出来的,所以里边可能会缺一些原始文件, 这个时候但凡出现这个问题,不要慌,把这个名称放到搜索引擎中去搜索,你就能下到这个文件,下完以后把它放在 sstm 三二目录中,然后去执行 这一个命令。注册表里边添加这个注册的文件,后面把你这个文件名就是这个名,给他放大,后面直行回车。如果操作完以后,你再执行网购,他还报这个东西,你记得上面的这个 名字一定发生了变化,再去下,直到把所有东西都下好,你说这么麻烦呢?没办法,你用的那个操作系统啊,他可能缺文件啊,他有些厂商为了让他的这个东西推广的更好,他把他里边所有的这些安装包啊,能不要的全给你删了, 结果呢,你现在用到专业软件的时候发现需要这个文件了,但是他没有怎么办?你就得自己去补, ok 吧,所以这点要知道啊,有很多小伙伴就会遇到这种问题,阉割版的操作系统带来的问题。 把这个东西整好以后呢,接下来呢,你可以去安装可视化的客户端,这呢给大家介绍了一款就是这个了,安装以后呢,先去点壳类的,创建一个连接,然后把这些信息都输上以后测试一下,如果能通的话,那就可以直接去操作它了。怎么操作还没说呢啊,好了这节就给大家讲 讲了俩东西,一个是关于芒果 db 的安装和启动怎么做,第二个呢就是可视化客户端,它的安装与连接怎么做?那接下来咱们就得去快速介绍一下这个 mongo db 的基本操作了,因为它和 radis 不太一样, radice 你操作一点点就行, mongo 它是款数据库, 你要是不会,他的基本操作你真玩不下去啊。具体如何操作呢?咱们下节再讲。

关于多环境开发呢,最后还有几个小点要说一下,这也是我们线上搞开发的时候需要关注的东西啊。 第一个就是我们在进行实际配置的时候,会根据功能把它区分开,比如说数据库相关的配置起一个独立的文件,缓存相关的配置起一个文件, mvc 相关的配置起一个文件有什么好处?想更换的时候方便啊,其实就是不停的做细力度的控制, 那在进行使用的时候呢,简单直接写一个 include, 这就可以解决问题了。来,接下来呢,咱们就把这个东西呢给他做出来。怎么做呢?来说一下啊,在这里边我们把刚才婆婆这次的这个版本呢,也给他备份一份啊,来扭一个 个新的目录,在这里边写个 props, 婆婆类似版的多环境格式给他扔进去。接下来咱们还是用压面版的来做啊,先创建一个全新的压面文件, 叫做 ablake, 选点 yml 文件,在这里边写上当前你要启动的环境,我们写一个泼,你看这提示就不出来了啊, 自己手写吧。 spring 冒号 pro f i l e professor 冒号,然后打上 a c t i v e 活动的是哪一个? d e v 的,有这个配置文件吗?还没有呢,咱得给它造出来,来复制 粘贴出来,然后来一个杠 dev, 这个里边写什么东西,你爱写啥写啥,正常的配置就行,比如说 so what? 冒号 pot, 冒号八零,好,就写这么一个东西,办招了啊, 现在呢,在它里边配的东西,如果你想让它拆分开怎么拆?看好把这个文件复制一下再粘贴啊,复制哪个都没关系,我们来个 mvc 相关的设定,在这里边我们写上对应的配置,比如说 several 冒号下边的 solid 下边的 context pass 冒号杠一 bank。 这是什么?是那个外边应用名对应的名字啊。这就做好了一个与 mvc 相关的配置, 你说我还有其他相关的配置,你可以接着写,比如说我们来一个 db 相关的配置,那数据库相关配置这里边你该怎么写怎么写啊?我现在 翻过来信息其实也没有意义,我这呢就写一个数据库相关的开发环境设置属性里边什么都不写了啊,只是给大家说一下,用这种形式好了,现在呢,我这有几个配置文件了,就有三个了啊,哎,把这些东西都关了,就留他一个, 接下来咱们启动他,看看他应用的是什么,注意观察,主配置中只写了一个 dv, 在 dv 里边写了一组属性,然后在下边又有一些,来我们运行一下, 运行以后呢,我们会发现八零是正常加载了,但是我们上下文的路径 con tens pass 并没有改,还是一个空白,也就是我们设定的那个一半,可并没有生效。原因是什么? 是你加载我们的配置的时候并没有说要包含他们两个。那怎么做?回车,在这写上 i n, c, l, u, d e in clue 的,把你对应的 d e, v 的 m v c 和 d e, v 的 d b 包含进去就行了, 听明白什么意思了吧?就是我要启动这个环境,同时包含这两个环境,现在你再启动,你就可以看到这两个信息生效了啊,来注意看这个地方,他启动的是不是启动了这么三个,然后再往下看八零有了,注意看,这是我们要观察的东西, 现在这个上下文路径是不是已经改成一半科了?当然如果你要有功能的话,你一访问前面就必须得是 http 冒号杠杠 loq host 的杠,然后一半可杠什么什么什么了啊。 好了,到这呢,这个东西就说完了,说到这个东西的时候啊,大家注意观察,这有这么一句话, d e v m v c d v d b 和 d e v 是不是有这么一个顺序啊?来,我们来测试一下它的配置的顺序的问题。 把这三个配置文件都打开,下边我把 dv 这个配置复制一下,然后粘到这里边我写个八幺,然后粘到这里边我写个八二。因为这两个是相同的,所以合并一下啊,我们再来运行看看效果,刷新一下 现在是一个什么效果,有一个八零,有一个八幺,有个八二,这个八零是不是生肖?原因是什么? dv 是最后一个加载的,来,我把 dv 里边的这两行给注掉,现在八零的端口是不是就没了,只剩八 八幺八二了,必定得用其中一个,我们看看用的是哪一个八幺的,那去看看八幺在哪个里边写的,在 db 里边写的。那你仔细看一看, db 的加载位置是不是靠后啊?好,我把这个配置这个地方给改一下顺序, 我说你这组配置啊,往后置,让 mvc 站到后面,注意观察启动起来是八几,是不是还是八幺了?首先我们看他是八二了,并且这个顺序是不是也变了?哦, 原来后加载的覆盖先加载的,因此我们在做配置的时候一定要注意你后面的这些配置,他最终会覆盖前面的配置中已有的这些属性等。而我们主启动的这一个环境,他是最后一个加载的,不, 不管你这里边设什么,通通都以他的配置为准,这样的话就避免的出现这种问题啊,那这个时候呢,有人就说了,那我要想切换其他的环境呢? 当然呢,可以啊,你就按照这个格式写就行了。但是你发现了一个小问题,如果你把这改成 pro 以后,你这是不是得改 pro 的 db, 你上是不是得改 pro 的 mvc? 那这个时候你这一行 in clue 的岂不是就无效了吗?每次都得改,所以说这种格式啊,并不适应于我们现在的这种开发。来,怎么做?说一下,把这点儿注掉啊,这是单一文件的格式, 接下来咱把这块还粘上,在 sprrenbut 二点四以后的版本中,把这个 inkrulu 的属性 给干掉了,换成一个叫做 grope 属性,也就是说使用这个 grope 属性来替换这个 include。 那么把这个属性加上以后呢,配置格式发生了一些变化,我写一个你看看就明白了, 我现在呢要设定一些组,什么组,看清楚。 dev, 引号,冒号,空格,然后 pro, 然后在这写 pro, 然后下边这个写 pro, 看懂没有?也就是说他设定了若干个环境组, dv 这个环境加载他们, pl 这个环境加载他们, 现在你再启动 dev, 启动的就不是 dev 了,是这个组对应的东西。明白,来,我们启动一下,先看看效果再说啊。运行一下,运行以后呢,我们看看 他启动的是什么? dv, dvdb 和 dvmvc, 注意观察顺序变了, 原来我们启动 dv 的时候,他是作为主配置在最后,现在呢,不是了,他跑到最前面去了,这一点很多开发者在做的时候,当版本升级以后,就会对这个东西产生一些小疑惑啊, 所以说这一定要观察到来,咱把这个东西给你恢复一下啊,我呢把这组对应的配置值给确认一下,八零八幺 八二。再来看我们的启动的时候顺序, dv, 然后下边是什么? 先是 db 的,再是 mvc 的,那最终谁生效? mvc 生效,这是不是八二?那么这就是 八二啊,这个一定要分清楚来回到咱们的资料上啊,在这节呢,咱们给大家讲了多环境开发的时候,这个独立的配置文件的一些书写技巧。 第一个点就是配置文件要根据功能拆分, db 的有独立的, ridas 缓存的独立的, mvc 有独立的,先把它拆开, 拆开以后呢,使用英克路的属性可以做这个包含关系,记得这个顺序是有用的啊,而主配置是放在最后加载的, 在这里边有一个注意点啊,当主环境的 dv 与其他环境有相同的属性的时候,以最后一个设置的为准,这个时候是主环境的设置声效,对于其他的环境中,假如说有他们相同的,永远都是最后一个声效啊,这一点需要知道。 而到了 spa 二点四以后呢,做了一个全新的更新,用 go pro 属性替代了 include 属性,现在是不是你在这配置文件中可以一次性看到所有的配置组都包含了哪些东西了? 在企业开发的时候,前面的名称不一样,但是后面他们引用的东西有可能大家都是不一样的,但是也有可能是引用了一些公共的东西,公共模块的,比如说 come, miss 的一些东西 做一个模块,然后在这里边先写上 comes, 然后再写自己独立的东西,这样的话也可以有效的去降低我们的配置量啊。 那我们以后主要用 include 还是狗肉婆?铁定是狗肉婆吗?对吧?啊,这一节呢,咱们就讲了多环境开发中使用这个狗肉谱属性啊,来设置配置文件分组, 便于线上的维护管理,使我们的开发更高效一些啊。有关多环境开发的分组管理,咱们就说到这。

各位互联网的小伙伴大家好,我是黑马李老师,这一次呢,给大家带来一门技术课程,叫做 spring boots。 为什么这次要给大家带来这门课呢?几个原因,我们先说最重要的,什么是死根部子, 其实 spen 布的是 spen 家族中的一门技术, spen 家族中有好多技术, 干嘛用的?用于提高死不硬程序的开发效率的,说的简单一点,死不硬有它的原始做法, 用了 spring 布的能让 spring 程序的开发速度提高,他是个提效的工具,你也可以说是框架。来,我们看看他在 spring 官网中所处的位置,你就知道这门技术有多重要了。打开 speling 的官网,进入到普洱 jack 的它所有的项目,这是 spen 家族中所有的东西啊,下面你随便点开一个,不管点开哪一个都行,因为进来都是这一个页面儿。来,咱们看这边, 这是 spring 家族中涵盖的所有的技术,而我们平常所说的 spring 技术指的是这个 spring farmwork, 但是你注意观察, spond 居然排序比他还靠前,是放在第一位的。注意啊,这里可不是按字母顺序排的第 c, 这明显的 d 在后, c 在前,但是就是这样的一个顺序,这是 spring 的官网给他定义的一 一个重要度的一个顺序,而 spring 布的可以加速 spring 程序的开发,因此它排在了 spring 的上面, 通过这个排序你就知道他的重要度有多高了。好了,到这呢,你就知道了,这门技术很重要,在 spa 家族中的地位举足轻重。那我们再回来说为什么要做这门课程, 两个点,第一,刚才说了,他的功能很强大,非常好用,市场价值非常高,很多大厂现在都必备这个知识点。那第二个点呢,是因为市面上现在有很多相关的学习资料,但是这些资料呢, 都会有一些缺点,第一有一定的内容缺失,这个东西呢,也不难解释啊,因为有些课程出的比较的早一些,另外一个呢, 有些覆盖度确实不够。再有一个就是课程的设计其实不太符合学习者学习认知过程。说的简单一点就是那对于一个初学者来说,应该按照一个什么顺序来学呢? 其实并不能够满足初学者学习要求。那基于以上这两点呢?黑马呢,就推出了这么一套课程,我们要做一套知识结构完整,内容呢又符合学习者的整个知识认知过程,同时 包含有大量的案例,并且有很多实际问题的解决方案的这样一套课,也希望这套课程能够帮到大家。那在这套课程中都包含哪些内容呢? 我把这套课程分成三个阶段,分别是基础篇、应用篇和原理篇,每一篇他的目标明确,对于 基础片来说就俩字,会用。你能够把 super 用不的程序开发出来,这就 ok 了,先做一个入门,然后基于会用的基础上,我们再说补全知识图谱, 也就是斯布特会用的时候,其实里边有些东西你是不需要掌握的,基于会用的基础上能够做出程序了,咱们再把它的知识数给它扩展开,一点点的加大他所涵盖的范围。并且在这个阶段我们要加强应用, 同时提高问题的解决能力,因为在丰富知识数的同时,其实你就会遇到很多非主线上的知识,这些知识呢,有些是专门解决一些特殊问题的,在这个阶段要重点提高各位学习者的问题解决能力。前面的基础篇和应用 其实都是把大家打造成一个能够做程序的人员。最后一片原理片就是提高认知了,让你知道里边是怎么回事。提高认知的最高层次是什么? 最牛的就是 spen boot, 我能够写一个和他一样的框架,哎,这是可以做到的,但是人家框架都已经做好了,那我们只需要基于它使用就行了。 sbunber 的核心里边有一块东西叫做自动配置,非常的重要,在这里边我们要着重研究它, 并且能够让大家达到一个新的层次,就是能够自定义,其实学什么技术大家都会有这个感觉,一提到让自己定义开发就会有难度。在这个阶段,基于理解原理的基础上,我们要求大家能够做到自定义。 以上这些呢,就是所有的课程阶段想要达到的目标,具体包含哪些知识内容呢?来一起看一下。 这就是整个 spen 布特课程的所有的内容了,基础篇、实用篇和原理篇。 那么在基础篇中呢,首先我们先做一个入门,知道一个步塔程序该怎么做,同时知道入门案例他是怎么运行起来的,他内部到底是怎么回事。 那接下来呢,咱们就要讲他的一个核心的东西了,因为他是加速开发的,他是通过配置的形式来加速开发。在这我们先讲最基础的配置, 接下来呢就要来说说 spen 布的做的最主要的工作了,就是整合,那么整合呢,咱们分两块讲,在入门篇里边,我们讲一些基础技术的整合,把这个整 合剪完,你就可以做一个案例了,这个案例呢会带着大家做一个完整模块,让大家看看啊,原来用布特做这个东西该怎么做? 基础篇其实就俩字,会用,你能把它做出来。基于基础篇的知识结构之上,我们来学实用篇,实用篇里边我们分两块,一个是运为使用篇和开发使用篇, 那在运维使用篇呢,更多的是教大家与线上部署有关的各种各样的操作。 布特程序开发好以后,怎么到线上去部署维护呢?这个东西给大家说一下,包括监控的一些东西,这是运维使用片,而开发使用片呢,有这么几块啊,首先开发程序才有一个热部署的机制,能够加速开发,同时前面的配置我们要 接着展开讲,前面只是开了个头,在这还要讲更多的配置。然后在整合第三方技术上面,我们要整各种各样的第三方技术, 包括这里写一个点点点,就是告诉你后续还会有更新出来一些什么新的技术了,我们也把它的整合加上去。那么比较常见的像什么缓存的整合啊, rades 啊,芒果啊这些东西, 包括消息中间见呢, loke 啊, rabbit, xt 五 mq 啊,卡福卡啊这些,这种怎么整?包括我们的定时任务怎么操作,搜索、 es, solo。 最后呢,再给大家讲一下安全相关的东西,整个实用篇里边呢,其实就是各种各样,我们开发过程中要打交道的使用技术。最后呢,讲原理篇,不要看内容这么 少,其实讲的东西很多啊,包个 spa 用布的最核心,最核心的自动配置是怎么回事?后面呢,我们带着大家来一起开发自定义的东西,这就是整个正式课程中的全部的内容了。 当然大家刚才看到了,在基础篇里面,这是不是整合就要整合这么多东西啊?那这些东西你要不会的话,那这门课听起来比较累了,所以学习这门课之前,你要知道你需要具有一些潜质知识。 spring 布的技术,它隶属于 spring 家族的一部分,它是加速 spring 程序开发的,因此 spring 家族的相关知识你得会一些。 你如果这一部分东西一点基础没有的话,这门课你是听不下去的。如果说你要是这些东西不会的话,需要先补习一下。 同时呢, spo 的它可以基于 mivin 或者 green 来进行构建,我这里基于的是 mivien 来做的,所以说 mivien 你得会 剩下来呢。税层的技术,这都是比较市面上常见的了啊,包括数据库啊,买 bits 啊,买 bits plus 啊,我们整盒要整这些,所以这些东西你得会。 另外后面到实用篇里边,我们要去整合,像缓存的消息的中间键呐,这些东西那你也得会一些。有人说你说的太多了,我有一些不会没关系, 你不会的直接跳过,哪一个你会你先学,哪一个你说我都不会也没关系,把那个技术掌握了,回头再来看这块就 ok 了。当然这里边有一点,我们在线上部署这一块呢,会用一点点零死的知识, 所以临死的命令你也得会一点点。好了,这就是咱们的整套课程,其实包含的内容还是很多的,希望未来的这段时间呢,这套课程能够给你带来比较好的提升。 好的课程需要各位小伙伴的支持,欢迎各位小伙伴去点赞投币,留言转发,最起码有一点,你把这套课程收藏了,后期在做维护更新的时候呢,你能够第一时间收到通知, 因为这套课程的内容比较多,所以我会阶段性的制作,快速的给大家投放出来,所以说收藏一定哦!那接下来咱们就开启这个课程学习的大门吧!

咱们要做这个东西,我们就从创建模块的这一步开始,在创建模块之前呢,我们还是要把整个系统架构基础设定说一下。 现在的企业级开发通常是使用手机啊或者浏览器去访问我们的前端服务器, 然后再由前端服务器去访问后端服务器,当然你可以把你的后端服务器呢做成各种各样的微服务, 这样由我们前端福气在访问后端的时候,他是在不同的福气上做对应的信息处理,得到最终的数据结果,再交给前端福气展示给用户看。那咱们在这做呢,因为做微服务相关的开发呢,并不是咱们这门课的一个重点, 所以在这咱们就做一个简单的东西,我们把所有的福气都放在一起,也就是不区分前端福气和后端福气,不做这个前后端分离的开发, 主要是让大家把整合的过程给做一遍,然后看看基于死不成布特如何搭建整个项目。接下来呢,咱们就进入到艾迪尔下面来创建这个工程,来新建一个全新的工程。你有一个新的模块 名称呢,你可以随便定义啊。 next 进到这里边来以后呢,改一下吧, come 的 it 黑马 项目名称,咱们用 spring 布的下滑零八下滑 s s m p, 把这个加我版本改成八,然后把这个包给删掉,后面这两行的内容呢,回头 咱们到泡沫中去干掉他。 next 在这里边呢,我们去勾选对应要使用的技术 spm, vc 要用这一项勾上,然后 circle 里边买 circle 的驱动,我们给它勾上。 对于这个买 batist 我们不用,咱们用 mp, 所以一会我们手工加对应的东西就行了。来 next 下边分内式,点击 ok, 等他出示画好就行。眉文这边呢,我们刷新一下,养成一个习惯,每创建一个工程,先来刷新一下,进到这里边来以后呢,咱们先去把泡沫简单收拾一下,这一句话拿掉了, 然后内蒙迪斯科瑞不许拿掉,把它换行一下,把不同的内容分离开。现在这里边倒了 spa, mvc 对应的 start 对应的 statter, 下面还有测试相关的 statter, 这里边还缺两个东西,来,咱给他加一下啊。 第一个是我们的买杯提斯 plus, 布特斯达特,然后对应的包给他挂上版本,给他挂上。 这个版本为什么要手工加?因为在上面的拍润的里边没有维护这个版本,这一点要注意啊。第二个坠的我们也给他挂上底盘的 c d r u i d, 坠的好给他挂上,然后这给他挂上 版本也给他挂上,这个版本也没有在上面进行维护,所以这些东西你要知道为什么有时候加版本有的不加。把泡沫写完以后呢,我们到这个 src 下看看有什么需要动的东西没有啊。 首先是这个运行的程序名称稍微有点长,我给他改一下啊,重命名一下,把这个名称改成一个 ssmp w, 开心,当然再短点更好啊。 refect 点击 ok, 好,现在这个名称就变短一些了,里边东西不用动啊。然后就是这个配置文件了,这个名称咱们肯定不能用,我们把它改成 email 格式的 点 yml, 改完以后呢,进去先把端口给他配一下啊,不然回头写起来会比较麻烦, 你每次都得挂上八零八零,这样写起来比较繁琐。然后下边的这个东西回头我们要用,到时候咱们再去改到这里呢,整个模块就已经创建完了,做 坐标咱们也加进去了。来回到资料上,这一节呢,咱们就把这个模块给创建了,做了两件事,首先创建的时候我们勾选了 spreme、 mvc 和买 circle 对应的坐标, 如果你现在不做数据层,你可以晚点再倒那些坐标啊,那个买 batis plus 和追得的 star 可以晚点再倒,我现在呢就已经加进去了,后面如果要用直接使用了。 第二个呢,我把这个配置文件的格式改成压面格式了,并且把端口配成八零了,就做了这么多东西。现在如果你还没有动手的话,我建议你现在就可以去把这个模块给创建出来了,咱们一起来做有关模块的创建。咱们就先说到这里, 下边该做什么事了呢?还有没有印象了?我们要把表初始画出来,再把尸体类做出来,对吧?咱们下一节再说。

现在呢,咱们已经能够把我们的程序包在福气上运行起来了, 但是这个时候就出现了很多问题,接下来这一节呢,咱们就来讲一讲与之相关的操作该怎么做。这就是咱们这一节配置高级要讲的东西,分成如下三个部分,咱们一个一个来吧。 假如说现在你的程序已经在服气上运行了,用的是八零端口,结果你发现不行, 我现在八零端口启动了一个更加重要的服务,不能够站这个端口,我要把它恢复成八零八零,该怎么做呢?你要知道你原来的端口是在哪里设置的, 是不是在我们的 ablay k 训店 email 这个文件里边配置的?这个东西你是不能动的啊,他已经写好了,而这个时候你又想快速的换一个端口启动,这样来做来把它打开。 现在呢,我们关注的信息呢就比较少了,先把它停下来,然后清一下屏,在这里我们仍然打加瓦杠架,然后打上你的这个应用的名称, 后面可以添加临时参数,也就是使用临时的一些属性来覆盖原有的属性。该怎么做呢?减减,打任何一个属性之前,先打个它,来一个 soler, 注意,这就不是冒号了, 复成你写婆婆腿的那个格式,点 pot, 然后等号八零八零能看明白什么意思吧? 就是把原来这里边的设定值恢复成在婆婆腿文件中的书写格式,同时在前面打两个减号。来,咱们回车啊,已经运行了,我们来看一看这次是否运行成功了。 找一下我们的端口,因为这个里边的信息比较宽,我把它稍微拉的宽一点啊,方便我们查阅。 来瞧一眼,八零八零是不是就启动了,现在咱们就已经掌握了,还可以通过一些临时属性来覆盖这个值来调试一下。现在你再回车,这就只能无限的转转转了啊, 然后冒号八零八零回车,现在是不是又启动起来了?哎,到这呢,咱们这个临时属性呢就已经设置好了,记得使用两个减号,后面跟上这个临时属性名。那有人又提出来说,如果我的属性不止一个呢?哎,咱们可以来说一下怎么做, 来把这个命令给他停下来,然后我们点上下键来切换曾经执行过的指令, 要想配置更多的指令,敲一个空格再打减减就可以了。那这一次咱们改个什么呢?我们把他的权限给他,修改成一个失败的权限,让他启动失败。看一下啊。 spring data sauce 坠的等等等等, ok 吧,来,咱们在这儿说一下 spring 点儿 data sauce, 点 druid, 点 passwrd, 等于咱们随便写吧,写个一二三回车。这一次呢,他也能正常启动,但是启动到后面他去连他的酷的时候,那肯定就出问题了,你看现在是没有问题,我去访问一下啊, 初始花完我去刷新一下,刷新完你来看这边。好,现在我们发现服务器在积极的请求尝试,但是这个时候已经报错了,他在不停的尝试,我把它停下来了啊,他报的是一个什么样的错误呢? 你可以往上面去看,他上面报的这些错误啊,都是一模一样的啊。来看一看 circle 访问的时候使用入特去访问密码出现了问题,这个地方要求你使用一个正 正确的密码,原因很简单嘛,就是我配置的密码是有问题的。来回到咱们的资料上啊,这节呢给大家讲了我们不的程序启动的时候,这个临时属性该怎么设置,这是与上线用维的时候有关的操作啊, 在执行指令的后面打个简简,把你的属性名与婆婆台词里边配置属性的格式写上就行了。记得如果你要是使用多个属性的话,千万别忘了属性间使用空格风格。那这里边就提出一个全新的问题, 我们在配置文件中配的有属性,在命令行上又写了一些属性,我们会发现命令行这个属性是不是把配置中的这个属性给覆盖掉了?他在生肖 是这样吧,他的优先级到底是怎么回事呢?来看一下。在我们的属性加载的时候,有一个明确的优先顺序, 这儿给大家提供了一个链接,这个链接是什么呢?其实就是咱们 sproper 官网提供的那个文档中的一段话, 我呢把这个链接粘出来,你呢比较好找一些啊。其实啊,这个文档啊,你看与不看对你来说影响都不大,因为最终成不成,你是不是得调成为止啊?这只是给了你一个指导建议, 你现在看到的这十四行就是他的一个顺序,而我们刚才用的是什么呢?叫做十一命令行参数, come on then agreements。 而我们之前用的是什么呢?叫做配置数据,也就是说在 ablay 科训店婆婆的意思文件中的数据。有人说不对,我呢是雅妙 不抬杠啊,都是配置文件,人家写这个文档的时候,标准推荐的是使用婆婆的意思来写的啊。 那你说这里边的顺序谁高谁低?明显的顺序是一个这样的顺序,上面的优先级低,下面的优先级高。 至于这里边的其他的东西,你能看懂则好,看不懂也没关系,比如说这有一个 系统环境变亮,能看到吧? os 操作系统环境变亮啊,系统 的环境变量比你的配置属性要高,但是没有命令行的高。这里面还有什么 soloid, contacts 和 solid, 康飞歌里边的配置等等的一系列的吧。那么这就告诉你一个,他有一个严格的顺序,你按照这个顺序就行了。 现在呢,我们就清楚了,为什么命令行上面配置的属性能够覆盖我们配置文件中配置的属性了。知道了这样的一个结论,回到咱们的资料上来, 从上到下,顺序由低到高,逐步提升。假如说你在进行一些配置的时候,你会发现,嗯, 我明明配的东西是 a, 为什么最后没有声效呢?往这想明白就出现 问题了,你就想是不是别人覆盖我了,那别人要覆盖我,我在哪一级呢?别, 别人的肯定高于我这一级,去这些级别里边找就行了,挨个的问你是不是在这加东西了,你是不是在这加东西了,你总归能找到对应的位置,有人加了一些配置,他可能是无意的,但是冲突了。 好到这里呢,咱们这节就讲完了,这节给大家讲了这个临时属性的使用方式以及他的加载顺序规则。 首先使用驾命令启动部的程序的时候,可以使用临时属性替换配置文件中的属性,刚才看了,那对应的添加方式是减减后面跟属性名等于指这个格式,这个格式和我们写的压面中的格式不太一样,多个属性之间要使用空格来进行分割。 最后临时属性必须是当前工程支持的属性,否则设置无效。什么意思?你写个杠杠 a 等于 b 随便写,没事,不重要,因为他识别不出来,所以他就不生效,不是报错, ok 吧,了解一下就行了。 那这个时候呢,其实对于我们的上线运维人员来说,他们就有了一个全新的渠道来干这件事, 就是通过我们的命令行在这里边加一些临时属性来设置他想要的东西。那这个时候新的问题又产生了,他加的这个指令加完以后啊,老不能用, 他就找你说,你看看我这个东西该怎么加了,怎么死活不生效呢?其实这是你的工作问题, 作为你后端人员来说,你应该在你的矮地儿环境下,帮助这个运维人员把这个命令测通,这样才能交给他使用。问题来了, 在矮地儿下怎么去测试临时属性是否生效呢?咱们下节再讲。

在咱们最早演示这个系统的时候,我们看的是带分页功能的,现在这个明显不带,那接下来我们要做的事情就是把分页功能给他做上, 其实分页制作非常简单。为什么这么说呢?你现在不就是展示全数据吗?我把你改成展示分页查询的数据不就行了吗?对,就是这样,所以说操作并不复杂啊。来, 回到咱们的这边来,咱们找到我们的页面来看一下,现在这加载的是 getoe 的数据,我们让他加载分页的数据就行了。为了做起来方便,我把下边分页这一块的操作剪切走, 放在 geto 的下边,放在一起比着说,这样比较容易理解啊。 现在呢,我们可以亲定义一个方法叫做 get 配计,然后呢,我们让他回头都掉 get 配计方法,在这里边写操作就行了。但是问题来了, 如果你这要用 get 配几做分页查询,你这要改,你所有调 get o 的地方全要改, 会死人的,怎么办?来把它复制一下注视掉,然后我们就拿着 get ol 改,管他叫啥名呢?有人说,那上面这个 get ol 方法不留了吗?要他干嘛?我们不就是得用分页吗?这只是临时的用一下, ok 吧,好,在这来吧。 那在这个地方我们要做什么操作呢?其实不就是这吗?这不就获取到数据了吗?当然没你想的那么简单啊,咱们一块来分。 首先我们先去看看分页插件与分页的数据模型来,跑到上面来啊,不看的东西都先注掉,这是分页组件, 在这个组件里边使用 element ui 的 e l pg nation 来做的这个分页操作里边都包含什么呢?快速介绍一下。 class 不说了,这是他央视表,当你去修改他的野马的时候,他掉。这个操作我们先不管他看清楚。卡润的配件加载了一个数据,这就是当前野马值,配集 size 加载数据, total 加载数据,这三个都要加载数据的。再来这个雷 out 是布局模式,他要求展示什么? total, 也就是一共多少条,然后 pray page next pray 是什么?是前一个就是这个按钮, nex 的是这个按钮,中间是页码值,也就是这是页码值。最后键盘代表的是这一块,也就是这个分页组件啊,你想用什么,你在这编辑就可以了,现在这一套是全的啊。 那这块东西看懂了接着再说。这三个数据在哪呢?往下找,在这呢,这是分页的数据, 默认当前页码值是一,每页显十条,一共总记录数是多少呢?不知道,零,这是合理的,你不知道多少条,但是默认进来给他个一,给他个十是没有问题的。 那我们要分页的时候应该怎么做?其实就是取到这些数据,把它作为这个一还有十传递 到后台去就行了,就这么简单。那怎么办?还能怎么办?拼呗,来吧,引号加上后面再加上个引号,然后再引号,再加上现在把一和十替换掉就行了。怎么替换? this 掉北京 nation p a g i 北京内心点儿卡润特佩奇,这是当前野马值,后面这是什么? this 点儿配进内心 pag i 点儿配起 size。 好,现在这两个纸就可以动态的从页面上获取了啊,来看看这有什么问题啊,应该在外边啊。 好了,现在这组操作就做好了,至于数据回来先不着急展示,我们先看看数据能不能回来。哦,这个词打错了啊,我们 看一看,这个词应该叫披萨子,是一个大写的啊,这些东西不能写错啊,来,重启一下,咱们到页面上去刷新一下啊,注意,我们看的不是页面加载的数据,我们要看的是发请求回来的数据长什么样。 f 刷一下,现在没有数据是对的啊,注意看最后一行,这个我们先去看他的嗨的去。来,注意观察现在发的请求就是不死一杠十, ok 的啊, 来,接着往后走,去看他瑞斯棒斯的东西,来看一看,这是回来的信息,这个信息呢,就是前十条的信息, 注意观察几个数据,查询操作 date 中蕊 codes, 这是真数据,拉到最后去看,这还有几个数据,比如说拖透啊, size 啊,卡润 台啊,奥特斯啊,这些东西全部都在啊。那接下来我们要做的事情是什么?就是把这些数据给它加载上就行了。来,回到页面里, 那在这个地方你要加载的数据是什么? this 点对他,就应该是从 r e, s 里边的对他中再去取他的对他数据,然后在这个对他中又有东西了,注意看,带着你们去翻一下啊,在我们的测试类中,我记得写过, 在他的 c 位词里边应该有吧。找分页的东西,那就是这些东西了,这些信息你要把它加载上来, 我们要加载的数据在蕊 colderce 中,所以这个值回头要写到这来,蕊 colderce 小写的啊。好了,现在这组数据就应 应该正常加载了,来刷一下,看看是否有效,来进入到页面上,这一次其实就不用看他了,我们 f 现在是不是已经加载十条了?首先分页已经控制住了,但是这边的信息还不对啊,为什么?因为你分页查询完得到的结果数据并没有装到页面上。说的简单一点, 你现在这三个数据你该改的没有改明白,来,咱们给他改一下啊。回来的数据中除了包含蕊、 colderce, 还有别的东西,咱们一个一个改,当前的配京 nation、 p, a, g, i 里边的那三个属性挨个写啊。配机 size, 好,这是一个,等于一会给他补上, 然后再来两个。还有什么?卡润的配件,还有一个拖头啊,卡润的配件还有一个拖头, 拖头好,这三个值分别来自于哪呢?来自于这组数据中,所以在这接着写,他点那后面过来的数据叫什么名?这个就得你自己去查了啊。来点好, 这三个数据在哪?刚才在这个里边我们已经看到了,复制一下,然后给他粘过来,咱们一个一个看啊。 首先当前野马值就叫卡润特,那么当前野马值卡润特这个词粘在这搞定一个了。拖透的数据就叫拖透,我们写上 totl, 拖透数据每 每页加载的数据量就叫赛字,所以在这写赛字。注意啊,这前面的东西和后面的东西你定义成相同的名称是最好不相同,就这样匹配一下啊。再来刷一下,看看,这一次我们把数据给到他以后还 ok 不?再来运行, 来重新刷新走,你注意看这边是不是已经成了同志们,因为有十九条数据,每页显示十条,他就知道一共两页,这俩页面都给你做好了,现在数据已经加载上了,到这分页功能其实已经做完了,但是我们会发现 这些按钮不让点,为什么呢?解释一下,在分页的组件中有这么一个操作,叫做憨豆卡润特群集,什么意思呢? 就是当你改变页码值的时候,做一件什么事来往下来,我们找一找,在这个 getle 的方法的下边就有这个方法。 其实说的简单一点啊,就是问你,我现在改页码值了,那么页码值应该改完以后再重新查一遍,那这里面该怎么写呢?其实就两行,第一, 修改页码值为当前选中的页码值。第二,执行查询,那修改页码值为当前选中页码值,怎么写?来,上面这是修改页码值 为当前选中的野马值。当前选中的野马值在哪呢?就在这个方法的第一个参数上来,把它挂上,搞定。那执行查询是什? 那么更简单, this 点 geto, 这就是执行查询了,把这一句话加上以后,他就可以响应换页的操作了。来刷一下, 启动完以后呢,咱们到页面上再去刷新一下,就可以看到效果了。点第二页是不是已经切换了?点第一页,退一页,前进一页,这个地方我选个二, ok 吧,都能用了。来,我们再来新建两个数据,幺幺幺幺幺幺,确定现在一共是两页,我们再新建一个数据,幺幺幺幺幺幺,确定 是不是变三页了?最后一页只有一条数据, ok 吧?好,到这呢,咱们这个分页的功能就加上了,其实你看一看改了多少啊?没改多少,原来 getoe 是调用杠 box, 然后数据 加载它,现在呢,换成分页的操作,只不过分页的这俩参数你得从页面上拿,然后 后呢,最终读取数据的时候加载完,别忘了这些数据你也得加载,否则呢,分页组件他是没法干活的。然后呢,我们下面又写了一个切换页码的操作,其实就是改一下当前页,再重新查一遍,说白了就是传递的这个值发生一下变化就行了。 好,回到咱们资料上啊,对于分页来说有这么几点啊?第一,页面上使用的是 el 的分页组件,那么这里边每一个东西是干什么的,你得知道,尤其是三行一 二三这三个数据加载成功,分页组件才能用, ok 吧?然后第二个,对于我们的数据模型来说,必须得有一个培训内训的数据模型, 和上面这个东西配合在一起啊,封装数据呢?那你看培训内训他,然后下边就有一个培训内训,下面有个他, 当然这些名称你改能不能改是能改的啊,有了这两个东西,页面的分页组件就能够工作了。 那要想让页面能够具有分页功能,我们要做的事情就是发起一个请求调用,把当前页码值还有每页显示数传到后台去,把数据拿过来就行了。那后台怎么做的?这是之前做的东西,就不再说了啊。 那我们得到数据结果以后呢,只需要一件事,通过阿 es 把他的数据拿出来,尺寸拿出来,当前页码值一共多少条数据都拿出来,说实话,好,这个组件就能工作了。做到这呢,只是分页数据上来了, 切换页码还需要再改一下,你把当前页码值传递给当前模型中的这个卡润的培训内训,然后再去重新执行一下,给头发操作搞定,这就行了。 其实这里边最主要的就是这个分页组件怎么用啊?属于艾拉门特 ui 和 will 他们之间的一个配合。好了,这一节呢,咱们就讲了一个东西啊, 使用 el 的这个分页组件,他呢必须得有一个对应的数据模型,所以这俩东西得先有把 el 的分页组件写页面上,然后把数据模型定义出来, 然后一步的调用分页的数据,也就是分页查询操作了。最后数据呢,回显过来,注意回显的时候加载四组数据,切换页面,其实就是改一下当前页,再查一下就行了。有关分页呢, 咱们就坐到这,但是这里面有个坑,来看一下现在我的数据第三页是不是只有一条数据,如果我要把它删掉以后确定,嗯,这不太对吧? 你现在是第三页吗?应该是第二页吧,但是第二页有数据吗?没有数据,这就是个 bug, 怎么解决呢?咱们下节再讲。

到这呢,咱们 ssmp 的整合案例做完了,快速带着大家把这些东西给过一下啊。 首先泡沫里面要配起步依赖,咱们配了几个啊,勾的有 spem, vc 和卖 celco 的手写的,有买 baces plus 的 starter, 追的的 starter, long book, 就这些了吧。 然后数据员的配置,坠的那个端口,骚点 pot, 还有框架相关的配置,比如说那个 id 太普还记得吧,自增的那个,还有一个表明前缀的东西,另外还有一个日志,对 吧?其实这些配置吧,你写的多了,每次用都是复制粘贴就好了。然后在 do 中呢,咱们使用了买 bts plus 的这个贝斯麦 app, 这一块可以加速开发。在 s o s 中呢,咱们使用了买 batis plus 提供的快速开发的接口和时间类, 在 ctrl 中呢,基于 rats for 开发,用 pose 的曼测了一下这个功能啊。最后呢,我们把页面加上放在蕊骚 size 目录下的 cd 和目录中就行了。其实你会发现,咱们做整个综合案例啊, 耗时最长的不是布特,整合这些东西是什么?是 will, 是 element ui, 是页面那些东西耗时才长。所以现在你再想想的话,假如我们是一个纯后端人员,写到哪就完了, 我告诉你,写到这就完了,很快就做完了。所以说前端他们做他们的,我们做我们的,相互之间不影响, 这样对谁都有好处啊,不要去见岳雷池干别人的事情,但是对一些中小型公司,恐怕你得一直全能 好了。到这呢,整个案例咱们就说完了,那这就是咱们最后一个整合第三方技术中所讲的所有内容了, 咱们先说了个整合解忧内的,后来整合买 beats, 在此基础上又加强了一下 mp, 然后又把坠的挂上了,最后把这些东西全部都坐在一起做了个小案例。到这里呢,咱们基础篇的内容就全部结束了, 不知道大家有没有跟着我一块在学习在做啊?如果你跟着我在做的话,你可以达成两个目标,第一 你会创建布特工程了,第二,你能够基于 spot 实现一个 ssm 或者 ssmp 的 整合了,在单位里边做开发,最起码让你做点功能是能做了,当然还有一些业务性的因素要考虑啊,不一定会做功能就能够去写业务啊。 那到这里呢,咱们基础片呢就完了,那后边咱们要学习什么呢?要学习用维片的东西了,分成实用用维片和开发用维片 对应的学习目标呢,在这给大家列出来,如果你现在还没有掌握这些东西的话,那么我建议你学习一下 录制这个课程呢,其实也是一个阶段一个阶段录制的,作为录课老师来说呢,其实我觉得还好,嗯, 说不上辛苦,但实际上还是要耗费很大的精力的。那么对于后期的这些内容呢,我也 是阶段录制阶段的往外放,给大家提一个小小的要求啊,如果你认为这个课程还不错,那么把它转发给你的朋友, 别人如果还不会这个东西的话,我觉得你应该帮助他,如果你遇到什么问题的话,也欢迎你在评论区去留言, 我们也会和大家一起来解决这些问题,因为你遇到的问题可能是所有人都遇到这个问题了,那么我会把它整理一下在后面的内容中呢,直接把它录成视频补充上去就好了。 最后呢,恳请大家对这个产品进行支持,你的点赞,你的转发,你的留言,都会让这部视频呢获得更高的浏览量,所以给大家提一个小目标啊,点赞 超过五千,我马上把用维片开放给大家,想快速看到就要靠你们自己了啊,加油兄弟们,我是黑玛丽老师,咱们试用片再见!