00:00
好,接下来呢,你再来看boot的一个特点,外部配置的加载顺序,也就是说T呢,我们要写一些配置不呢,可以写在我们这个应用的配置文件里边,Application放在内录音下,我们不仅可以在这配置,还可以从呢这些位置加载配置,要说呢,我们把配置写在这些位置也是可以的,详细能写在哪些位置呢?我这有列举11个,但是呢,官方文档在这一块,我们来到spring BOO的官方文档第四章,啊,第四章节专门有一个叫外部配置官方文档呢,列举了17个,哎这些呢,其实都太多了,我们核心呢,就关注我红颜色标识的这几个,我呢提取出的这11个,哎,我们来可以看一下。好,我来放在这,也就说一句话,Spring呢,也可以从以下位置,也可以从以下位置加载配置,而且呢,这个位置我们从一到我列举的这个是按照优先级,按照优先级从高到低,也就是说还是我说的之前说的那句话,高优先级的配置,高优先级的配置,高优先级的配置覆盖低优先级,低优先级的配置,但是如果有不同内容啊,所有的配置会形成互补配置。
01:43
哎,记住这句话就行了,好,那我呢主要来看这几个位置,比如第一个我们的配置可以放在命令行参数上,这个是什么例子,例子呢,我来给大家举一个例子,然后说呢,我们这个应用我在打包的时候。
02:02
来,我们来把这个应用,我们来打一个包。如果我们在打包的时候呢,我们要来打包完成以后,我们来访问我们这个项目。关键打包的时候呢,我们只会识别我们这个慢,以及咱们这个Java下下的一些东西带起来打包,那么剩下的我们这两块东西它是打不了包的,那么行,我们接下来呢,就来访问,我来访问呢,咱们这个target目录,我来用Java杠炸的命令我来执行。我来执行什么呢?执行我们这个spring这个打包,如果我们默认来执行,那打包呢,它就会找到我们这个confident文件夹下的8082端口,所以呢,它以8082端口启动,并且呢跟它形成互补配置,访问BOOT02没什么问题,我们再来访问一下8082下的BOOT02,但是呢,某一天我们说我想改一下服务器的这个端口号,那么呢,我们可能得写一个配置文件再来改,等等等等,这也太麻烦了,我把它停一下,我在执行命令的时候,可以用命令行参数修改我们spring boot的默认配置,比如我就写一个点。
03:19
哎,我写一个服务器的端口号,我给它来指定8087,我来指定它,我来回车来启动,看一下它是什么端口启动呢。哎,我们发现它就是用8087端口了,比如说呢,我们命令行加载的是优先级别,当然我们里边的这个配置文件还配了我们来看啊,我们默认的配置文件还配了我们访问名,它们同时生效8087,哎,所以说呢,我们现在访问就可以是这个样子,比如说一句话,我们可以用命令行来修改spring BOO里边的所有默认配置,我们在命令行操作的时候,加上它以前命令行修改配置也演示了很多,特别是那个spring con location。
04:08
指定配置文件位置的,好,我把它复制来我们这个示例呢,我来放在这,然后呢,第二个我们可以加载来自于什么基因Di的,或者呢是我们Java系统啊,虚拟机里边的一些系统属性,包括呢,也可以是环境变量,主要呢我们来看下边这几个,炸包外的带profile的和炸包内的带的和炸包外的不带的和炸包内的带。那么这四个呢,我们我就总结成两个,首先是优先加载带的。加载带破费,如果说我们指定了什么,指定了我们这个环境,那么呢,它就优先加载带破费,不管是炸包外带的还是包内带的,再来加载,再来加载不带的。
05:04
哎,我们指定了跑费,那它就会优先加载我们这个带跑费药,再来加载,不带跑费药,但是不管怎么加载,它遵循的顺序都是由炸包外向炸包内,哎都是呢,由炸包外由。炸包外向炸包内外向咱们这个炸包内进行啊寻找,然后呢,我们高优先级的配置覆盖低优先级的配置,这个呢也是非常有用的,我来给大家举一个例子,我们把这个高亮一下。考量一下。好,我呢,还是以这个应用打包为例。我们把这个应用呢,都已经打包了,我把这个启动呢,我来停掉,好停掉,然后呢,我们把这个应用打包好的,这个应用我来CTRLC,我来复制CTRLV,假设呢啊这个为了方便呢,我放一个hello文件夹吧,好放在这放在这儿,那如果是我们现在来启动这个应用,因为打好的包,我们来用360压缩打开,还是不说的那句话,打包的时候我们自己的配置在这,你看啊,他只会呢把我们内路径下的这些打包。
06:25
哎,那我们原来写的这个工程路径下这个东西与不符合memory的目录结构,所以呢,它也不打包,不管那么类路径下的这两个打包进来,它和他,那么最终呢,高优先级是8082端口,但是呢,整合到我们这个访问路径两个一起生效,所以说呢,我们来看这个配置文件,哎,8082没问题,包括呢,我们这个默认的这个也配置了咱们这个BOOT02访问路径,哎,然后呢,如果说我们就按照打好的这个包,我来启动咱们这个项目。
07:00
怎么启动呢?我用Java炸命令,好,我们就启动咱们这个spring,哎,这个我来启动它一定是什么端口啊,8082来看一下,好启动起来按照8082端口启动,并且呢,BOOT02也是生效,但是我们来说,哎这一块呢,它还在这访问,把这个CRLC哎停一下,这个停的时候呢,它在这居然启动起来了,哎,我来刷一下啊,可能我这个系统有点问题,好现在呢,我们这个启动起来,我来访问是没问题的,那如果说是。我想要改它的这个端口怎么办呢?以前啊,我们有好多种方式,按照优先级,你呢可以用命令行参数的方式,但是呢,假设我们说我要改的东西特别多,我给每命令行上添加每一个参数,那我们来说命令行的参数,多个参数怎么区分我们呢?其实可以直接用空格,空格我再来指定第二个参数,比如server点。
08:08
点来我们的访问路径con,比如呢,我们就叫杠ABC,好,那么也就说这种方式是可以的,我们来可以看一下来我们如果想要启动应用,我们要改配置,我们完全可以在命令行里边把我们所有默认配置都改掉来启动。它呢一定是从8087端口来启动8087,包括呢,我们项目访问路径也会叫ABC,我们来问一下8087。诶8087,我来现在呢,访问这个BOOT02就不行了,我们要访问ABC回撤,哎,现在呢是可以的,也就是说呢,我们所有的参数可以按照它优先级,我们都来指定在命令行多个参数。多个啊,配置用空格。
09:02
分开咱们这个写法呢,就是杠杠杠杠,咱们这个配置相等于指。值就行了,好,这是我们第一种命令行参数,但是如果太多了,我们都来这么来指定这个肯定也不靠谱,把它停掉。听着听着好,然后呢,我就可以这么来做,怎么做呢,我来专门来写一个配置文件CTRLC,我把这个配置文件呢,按照它的要求,我放在炸包外边,诶我就放在炸包外边,然后呢,我来我来呢改一下端口,好,首先呢这有改端口,我改成8088。好,然后呢,我们叫boot,我们就叫boot,我们呢,放在外部的这个配置里边,我来启动。好,我们来启动用Java杠的命令。Spring,我们用它来启动,我不输任何参数,走它启动呢,它就会给我们加载我们外边的这个配置。
10:10
来看它现在呢,诶端口首先是8088没问题,那访问路径也一定按照外边来叫boot,我来访问一下8088。吓的什么呢,不疼?回车,我们现在访问呢,就是可以的,所以呢,这就是哎,我们优先级加载的问题,我们可以给各个位置,比如第一个命令行参数,这是非常重要的,第二个呢,我们可以从炸包外部里边来加载,当然呢,这还分我们带profile跟不带profile的,Profile呢我们之前也说过了,大家可以简单演示一下就行了,包括呢,我们也可以用configuration,我们配置类上专门引用的外部配置文件,而实际上呢,我们真正的所有支持的所有支持的加载来源,配置加载来源大家呢,详细就来看我们官方文档,哎,有这么多,但是这个东西啊,这太多了,我们实际呢用不到这么多,嗯,参考官方文档,参考官方文档,我们把这个链接呢给。
11:25
大家。来给大家放在这参考官方文档。哎哟,好,那么这个参考官方文档。这呢是我们啊,所有的咱们就要配置加载来源,但是记住一句话,SW boot呢,可以从这些位置来加载配置优先级从高到低,然后呢,高优先覆盖低优先,所有合起来形成互补配置,这就是我们的总结。
12:02
好。
我来说两句