00:00
好,同学们,前面呢,我们整合了spring boot,测试了一下double的功能。接下来呢,我们说一下大包配置文件的事情。我们以前呢,是来写一段spring的配置文件。这一块呢,有配double的一些信息,包括呢,配置文件里边能写非常多的double的一些标签,到底能写哪些呢?我们可以参照double的官方文档在配置里边。下边呢,有介绍每一个标签的作用,包括呢,在我们这一块有一个干ma配置,咱们这个参考手册这一块呢,有每一个标签的详细解释,这个标签是做什么的,比如double service来。配置我们这个服务提供者,暴露服务的包括呢,标签里边能写哪些属性,每一个属性的功能也写的非常清楚,那在这呢就不带大家一一阅读了,大家在课下呢了解一下,我们也会在用到每一个标签的时候呢,用到这些属性会来做解释。
01:04
只要我们知道能配置哪些标签,其实呢,与spring整合的时候,Application properties中配置的这些东西都是跟标签一一对应的,前面呢,其实就是这个转化来的标签名,诶,Double冒号application,那就转化成double.application然后呢,加上它的属性名,所有标签的属性呢,我们均可在这儿进行一一配置。而且呢,对于这些属性的配置,我们想让它生效double呢,其实规定了有三种规则,我们在属性配置里边。也就是说呢,下边我们来看一下double的覆盖策略,属性呢,我们可以在应用启动的时候,通过Java的这个杠D添加虚拟机参数的方式来改变属性的值,也可以呢,配在我们查文件中,哎,我们以前呢用的是查文件与spring boot整合,它呢就跟application proper文件是一样的,也可以配在或者我们的application properties中。
02:06
还有呢,我们还可以写一个叫double的properties double的这个properties文件呢,其实就是double的整个公共的配置信息,如果很多人哎,很多的配置都一样,我们可以抽取成一个公共的配置信息,他们呢也能在启动的时候加载,但是呢,我们有优先顺序,如果说我们这个虚拟机参数有传入,那么以它为优先,如果呢,我没有传入它,那就以我们的插麦配置或者我们与spring整合的application properties为优先,如果呢,他也没有传,那才以我们这个double properties,我们的这个公共配置优先,那么呢,我们就来测试一下这个效果。也就是说我们可以在我们的这个,哎,比如我们这个user service里边,除了来写这个application properties,也就是说普通的。
03:00
项目里边application properties就是这个,那是一样的,我们就在一个里边演示,那还可以呢,写上一个叫double properties。这个里边呢,主要是一些公共配置,比如大家都不变的。都不变了呢,我们来举一个例子吧,我们用,因为我们要看哪个生修改能生效,我们就以这个double pro啊,Pro的这个port为例,我们这个端口号为例,那我们这个proper里边能写什么呢?其实properties里边能写的内容,哎,就是我们这些double点什么点什么。这些点什么的配置从哪来呢?其实我们这儿说了,哎插它是将插麦配置的这些标签名加属性名,然后呢用点E分割就是这些配置,那相当于就跟我们application properties的配置生成规则是一样的,比如我们这个double application name,然后呢,它就生成double.application.name。
04:00
那好,那我呢,就来在double的配置文件中,我们配上一个端口号,我们以端口号为例吧,来测试一下,那我们这个double的公共配置文件中,我来配上一个叫二零。882啊,端口用200882,我们的这个application proper中我们用20881,然后呢,我来启动我们这个服务提供者,由于呢,我们要测试哪个配置能生效,所以说呢,我启动的时候先run configuration,我们先配置一下。主要呢,来配这个user service provider,我们这个服务提供者配的时候呢,我们在参数位置来配上第一个虚拟机参数,这个虚拟机参数呢,叫杠D啊,这是固定写法double.pro。点port端口,我呢把它指定成20880,那就相当于在启动这个服务提供者的时候,虚拟机参数指定我们用的端口是20880,然后呢,Application properties,也就是我们普通项目里边的这个配置指的呢又是20881,那我们这个double的公共配置properties又指的是20882,哪个能生效呢?来运行一下。
05:19
好,我们来稍等,让他启动这块呢,应用已经启动了,我们看到这个UR的地址是20880,包括呢,我们在管理控制台来看我们的这个服务提供者,哎,现现在呢,确实是20880。那说明呢,我们这个启动了,那我就停一下,我们的虚拟机参数有效了,那接下来呢,我们的运行的时候呢,不带上虚拟机参数好。还是这个user service提供者,我们把这个虚拟机参数删掉,相当于我们虚拟机参数没配置,只剩了插,或者我们说的这个application properties啊,还剩下一个double的配置,这两个哪个能生效呢?按照优先级规定,那一定是它生效,那就是这种情况下,测试结果应该是20881好来运行起来。
06:11
运起来呢,我们来看控制台好,现在呢,启动起来,启动起来呢,我们看到确实用的端口是20881,包括这个监控控制台,我们也能看到是20881没问题,那同样的我把这个停掉,如果说我们application properties中,我们这个没配置。没配置,那么呢,它就会用公共的double properties这个配置呢,叫20882,那此时呢,20882就应该是有效的来运行一下。好,我们来看一下效果。好,现在呢,注册用的这个端口是20882啊,包括我们在管理控制台明显能看到这个20882,这20881呢,有时间判断短,他还没有感知到下线啊,现在好了,20882好,现在呢,我们就。
07:03
测试了一下我们配置的整个加载顺序啊,如文档所说,我们优先顺序呢,是按照虚拟机参数,然后呢和我们的插配置,接下来才是我们的公共的double配置。那这样呢,我们以后在编程的时候就可以将所有比如注册中心的地址,应用的名字等等公共的配置,我们都可以放在double properties中,我们的插面以及application properties里边,那之前我们额外需要改变的配置。包括呢,我们如果想临时再来改变,我们可以都在启动应用的时候通过传入虚拟机参数,而不需要再来改变其他配置了。
我来说两句