00:00
好,我们前面呢,以插麦的方式测试了一下double里边的一些配置,比如超时属性、重置次数、版本等等,那么这些相关的属性如果以的方式进行整合也很简单,我们这个double service标签呢,其实就对应我们这个service注解,在这个注解里边呢,我们标签上能写的属性这里边也都有timeout我们在这儿配置就行了,包括reference的相关配置也在reference这个注解里边。但是呢,我们会额外的发现,在这个标签里边呢,它可能会给某一个service,我们这个服务提供者里边呢,会单独配某一个method的所有详细设置,而我们的注解呢,是没法做到这个事情的,那用spring BOO的情况下,我们还要做详细配置,怎么做呢?我们就来说一下我们double跟spring boot整合的其他方式,在这呢,主要说三种,Smallbo与double整个的三种方式,三种方式的第一种就是我们之前用过的,哎,我们直接导入double。
01:17
然后呢,在application properties中配置double的一些属性。配置属性,然后呢,主要是使用service标签来暴露服务。报服务和使用。使用。An reference标签。Reference,来咱们这个引用服务。这是我们以前用的方式,而且呢,要用这个功能一定注意要enable double开启基于double注解的功能,其实它的作用呢,就是来指定我们这个包扫描规则,在以前老版本的配置里边,也可以在这一块来指定包扫描规则,Double点有一个base,哎,Sky best package,比如说呢,把我们要扫的哪些包我们直接写上边,比如我们要扫com and gma里边,如果我们在这写了包扫描,那其实呢,我们这就可以不用来写这个开启double包功能了啊,主要就是这个包扫描。
02:29
好。接下来呢,是我们说的第二种方式,我们呢想要做啊,想要做到我们方法级别的精确配置,那我们还可以用第二种方式是保留我们double配置文件的方式。配置文件。哎,我们就保留double的插配置文件,这个保留要怎么做呢?比如我们以user service服务提供者为例,那么user service的这个啊,插配置我来复制过来,在这种情况下呢,我们application properties里边的所有配置我们都不要了,不在这配我们呢,还是用我们最原生的方式们在这个provider里边,我们把这个插门配好,配好以后呢,啊,我们在这手写,写完以后我们接下来打开这一块,只需要做一件事,好把这个注解我们就注掉,这是在我们第一种方式的情况下用好我们写另外一个注解叫import resource,导入一个配置文件,这个导入一个资源配置文件导入什么呢?我们就是写上class pass类路径下的这个double配置文件,哎,这样也就行了,包括呢,我们暴露service呢,也不用用注解了,哎,因为我们直接呢,在这个插中都已经。
03:52
写了啊,我们这个服务是这个样子的,哎,然后呢,它的引用规则,我这个暴露规则在这好这种呢也是可以的,我来启动一下,为了看到效果呢,我们就给provider里边给这个application name设置成我们这个应用的。
04:10
名字我们启动起来,看注册中心能不能注册到我们这个服务。走。哎,发现呢,这有报错,报错的原因呢,说这个user service2没找到啊,这是由于我们之前在测试多版本的时候呢,还写了一个user service2,把这个呢就删掉用了好。我们重新来进行测试。哎,我们发现呢,这个启动起来,我们来到控制台来刷新,哎,我们看到了一个提供者啊,这个提供者呢,我们来看一下这个应用就是boot user service provider,它是一个服务提供者,那第二种方式呢,我们也能用,以后我们就在插里边,以前怎么写,现在还怎么写,哎,那么第二种方式的操作步骤就是还是一样导入start。
05:10
而额外呢,就是用import resource,使用它导入打宝的配置文件就行了。至文件即可,这样呢我们就能在配置文件里边做到方法级别的精确。当然,还有第三种方式。使用咱们这个注解API的方式,这个是什么方式呢?我们这个double的官方文档也有提及,我们来在这看一下,那配置里边呢,有一个注解配置来注解配置呢,还是用service来暴露服务,但是呢,我们可以将所有的配置,我们专门来写一个配置类,这个配置类里边呢,将这些我们要用的配置并应我们都给它放在容器中,我们来看这些being应的规则,Application conflictfig registry conflictf,其实它对应的就是我们这个标签里边每一个标签都有与它对应的叉叉叉conf标签conf这个组件,我们把这个组件呢,我们手动的给它创建好,放在容器中也是行的,然后呢,第三种我们就利用这个思想,将。
06:26
每一个组件手动。创建到容器中啊,那我们就来自己来写一个配置类,好,我们来写一个配置类,我把这个类呢放在config包下,我们就叫my double conf。好,那我们这个配置类怎么写,其实就是手动的将以前配置文件里边的内容都放进来,配置文件里边有什么我们就放什么,比如第一个当前应用的这些名字信息啊,我们这个标签是application标签,那它就有对应的一个application comp,那就写一个application conflict,诶没问题,然后呢,我们自己把这个组件拗出来,又一个application conflict,好,这块呢,直接能设置应用名行,我可以在构造器里边直接不传,我们来给大家挨个点set,比如name不能设置好应用名,哎,跟我们这个标签里边的配置其实是一样的,把这个复制过来。
07:33
好,这是我们设置的应用名,我们如果想要设置其他的来继续,我们来在这点set来设置各种规则就行了,好,我们把这个创建好以后呢,Return出去,把它呢放在容器中,相当于呢,我们用它替代了我们double application标签,哎,这是第一个,第二个们看配置文件里边呢,还需要我们registergry注册中心的信息,好,我们把这个呢,也使用代码的方式给它构建出来,我写一个帕,那一猜呢,就应该有一个registry con,哎,它就有对应的这个con,这个就行了,Registry。
08:15
Registry。Rery con,诶,确实有这个con好,然后呢,我们来把它写上,那就自己来拗一个read j tree con好扭过来以后呢,我们注册中心的地址我们也给它设置上,这样设置两个来我们这儿呢,一个叫portocle,啊,这个协议的名我们是用zoo keepper。第二个呢,再来设置上registerg conflict set,我们还有一个叫address。啊,把这个地址我们也拿过来,这样呢,相当于我们用代码的方式又把这个标签组件创建出来了,把它呢返回放在容器中。
09:03
这是我们做的第二步,那第三步我们来看,在这个插面标签里边呢,我们接下来又配了通信的规则,哎,什么标签就有什么对应的config,所以说呢,那我就来继续。我们把这个通信规则的设置,我们用Java代码的方式又来创建过来。好,Public我们应该叫port啊conflictf,诶没问题,确实有这个conflictf,好,我们把它呢创建出来用一个port config,好把这个config里边呢,主要我们来设置两个,一个是config的名字,点set name。这个名字呢,我们用double。另外一个呢,就是它的端口号啊赛。这端口号呢,20882好,那这个设置好了以后呢,也把这个组件给它返回到容器中,好,我们把这个呢给它加在容器中,好,这是我们这个port我们就配好了,那么还有我们这个service们要暴露的这个腹部,好,那接下来呢,把它也配进来,也就是说啊,每一个标签我们用代码的方式把它对应的组件做过来,那么呢,我们这个标签主要呢是service里边带了muscle,那我们整体返回service conflict service conflict好,这个泛型呢,那自然就是这个interface的类型,你就来写user service,哎,我们想要暴露user service这个服务。
10:44
好,然后呢,我们接下来我们就来给它写上,我们也写上叫user service,好,那我们接下来呢,我们就来用一个service conflict,好,我把这个service con我们给它创建出来,创建呢,我们把这个泛型加上是用user service,我们有什么属性在这写什么来我们这个泛型接口呢,我们来写上。
11:10
它点set,哎,我们这个泛型接口啊,它这个东西,哎,我们把它的这个可以用刚才的那个字符串的圈里面,也可以用我们这种方式的群里面点class给它设置上,包括呢,我们这个reference,它是哪暴露哪个对象,Set reference也设置上,这个对象从哪来呢?我们IOC容器中已经把它加在容器中了,把这个暴露服务呢啊注掉了,然后呢就来把它写上,那怎么拿到它呢?我们只需要在方法上我们写上user service,那么在调这个方法的时候,就把user service从容器中拿来,就自动注入进来了,好,这是我们想要暴露的服务,包括呢,还有这个超时属性的设置,比如设置上一个,我们设置一个版本吧,好,把我们这个版本呢,我也设置上,这呢,我们只是设置好了,相当于这个service conflict。
12:10
但是呢,Service com里边我们要配这个method的信息,那我们接下来可以在这配置每一个method的的信息,那呢自然也有method conflict,哎,我们就new一个method conflict,看有没有呢?哎,确实有,我们就把这个method的信息呢,我们也配置上。好满的信息我们来看一下啊,首先第一个叫set name,设置某一个方法,把这个方法名拿来,包括这个方法的其他属性,比如超时method con,第2SET time out,这个超时属性拿来写一个以前好,这个method设置好了以后呢,我们要放在service conflict里边,这个method在service标签里边怎么放呢?那这个service conflict里边像method的的设置保存到我们这个service配置中来,我们应该是关联到。
13:13
那我们这个怎么关联呢?我们只需要用service config点一个set muscle,哎,我们这有一个muscles,这是一个list传入muscle con啊,因为我们要配的方法可能有很多,我这只配了一个,那我们自己就把这个list弄过来,Muscle conflict muscle conflict,然后呢,这有一个muscles,等于new一个,我们就new一个aist,把我们这个muscle con呢来放进去,点and来我们刚配的它放进去,那多个方法呢,我们就都可以放进去,这样呢,我们相当于这个service就配好了and b给它加在容器中,包括其他额外的所有东西。哎,比如我们啊provider端的统一配置,那肯定有provider conig,哎,我们就不一一来做了,来给大家看一下provider config有没有呢?Provider config,诶,确实有啊,那么说明也有这个,包括呢,我们监控中心。
14:13
Monitor肯定也有monitor con来测试一下是不是有这个monitor。Conflict,哎,确实也有,所以呢,每一个东西呢,大家就自己来在这配置好,但这些呢,要额外写一个方法来配,那么我们就配这些,配好以后,接下来怎么办呢?看我们这个文档里边,当我们把这个都配好以后,来我们来指定一下我们double的这些service接口的扫描路径,使用这个double component sc件就行了。好,那我们就来在我们主配置类里边,把以前导入配置文件的方式注掉,来使用这个叫double sky,但是这个注解呢,其实跟我们以前的a double是一样的,哎,它就是double component,比如说我们用哪个都行,那么就来用一下aable double。
15:08
好,然后呢,规定一下扫描包的这个路径,哎,Scam packages,好,扫描哪些包呢?那我们就来写一下扫描and硅谷这面答,我们的这些组件要被扫描进来,我们user service employment这个服务呢,我们还是用at service注解啊,暴露出来,然后呢,我们在这重新启动测试。走。好,我们来看一下这一块呢,相当于暴露出来,我们来主要看控制台刷新,哎,我们这个应用数有一个是不是我们暴露的这个服务呢?User service没问题啊,所以说呢,我们现在这就是我们第三种方式,其实呢,就是将每一个组件手动创建在容器中,让double,让咱们这个double来扫描组件就行了,让double来扫描其他的组件。
我来说两句