00:00
那么今天呢,我们继续把我们的短信微服务呢给他完善一下,那首先呢,我们先来看一下昨天我们都写了哪些内容啊,首先呢,第一件事情就是我们要知道我们目前为止这个短信用于什么样的一个场景下,然后第二呢,就是这个是短信发送的一个啊具体的一个业务流程,那这个到时候呃,我们真正的在执行这个短信发送的过程当中呢,我们再来去核对这个业务流程啊,我们先把整个短信发送的这个项目的创建过程给它里边,那么首先呢,我们是创建了一个service SMS,然后呢,在这里面配置了我们的po.xml啊,然后呢,在这里面呢,我们啊,首先我们的短信平台啊,依赖了我们的service base啊,因为前面我们说过service base呢,是啊,所有其他微服务的一个公共配置所在的位置,然后接下来呢,短信本身呢,这个平台本身呢,它也是一个微服务,所以呢,它要依赖于这个spring start web。
01:01
啊,然后里面呢,也有一些关于实体类啊呃,所以呢,我们要啊给这些实体类呢写一些gas set啊等等啊相关的方法,然后另外呢,它可以打印日志,对吧,这个long box好,然后接下来呢,就是阿里云短信啊这块的一个AP啊,这个SDK的一个依赖了,那么它叫阿里云Java SDK号好,然后接下来呢,我们就创建了application email,那么在这个application email当中呢,我们给它定义了一个服务的端口号,环境服务名以及啊red的一个连接,那阿里云短信这一块呢,建议大家呢,就是啊就直接用我的就可以了啊把它配置上,配置上之后呢,我们就可以进行一个短信的发送了。啊,然后接下来呢,我们来看一下。接下来呢,我们来看一下,在这个项目当中,最后呢,我们创建了一个启动类,好,然后呢,我们来呃做这个自定义配置,那我们自定义配置的目的呢,就是把上面的这个配置文件当中的配置信息呢,自动的读取到我们的项目当中,自动的读取到我们的应用程序的内存当中啊那我们自定义配置的方案有很多种啊啊这个不局限于现在我写的这一种,那么这个是我平时比较喜欢用的一种哈,好,那就是定义一个啊工具类吧,相当于然后呢,用它去实现一个in得来病啊,用它实现引得来病的好处是什么,就是呢。
02:31
它有一个抽象的方法啊,这个抽象的方法呢,它什么时候被调用呢,它会自动的在。这些常量啊,这些成员变量啊,啊被这个节点里面的这些属性啊,自动的初始化完成之后就调用,这样的话就我们就不用关心到底他什么时候初始化完成,对吧?我们就不用关心这些事情了啊,我们只需要去啊实现这个接口,然后呢,去实现这个方法就可以了,在这个方法执行的时候,那么我们认为这个成员变量就一定会被这个注解是吧?这个注解这个注解啊配合来进行初始化了,已经初始化完毕了,好,它一初始化完毕,我们就用这面给这面赋值,然后这面就有值了,这面一有值,我们未来调用的时候,直接就可以SMS properties.region ID啊用这种形式呢,来做一个远程的调用,好,那这是我们所说的,呃,SMS properties这样的一个自定义配置,然后接下来呢,我们来看。
03:35
下昨天我们的代码。好,这是昨天我们写的代码哈,昨天我们写的这个代码里面呢,有这样的一个红色的提示啊,这个红色的提示呢,其实它并不是一个错误,它只不过就是就告诉你,你这个里面能少点啥,他说少点put configuration and per s not coniggu,就是说配置文件,然后注解处理器。
04:04
没有配,呃,他一般情况下是针对这个去做的一个说明,就是在配置文件当中,我们不是自己添了一个这样的一个配置节点呢,啊然后呢,这个配置节点呢,他认为就是你没有对它进行一个编译处理,什么叫编译处理呢?就是正常情况下,你看上面的这些配置节点啊,啊,我们其实是都可以,就是有提示的,比如说我写的port,哎,它就有serve po是吧?哎,你看它可以自动提示出来啊。因为它这个是连接了我们应用程序当中的真实的这样的一个,那server properties,你看跟咱们这个SMS properties是不是如出一辙呀?啊好了,它连接了一个叫做server properties的这样的一个类,然后呢,这个里面呢,就对这个server properties呢进行了一些一系列的配置,你看它这块是不是也有configuration properties,你看prex server,你看我这面是不是也是configuration properties啊pre阿里云SMS,所以说一般情况下呢,在我们的这个配置文件当中啊,它每一个配置下呢,它几乎都类似于对应有这样的一个配置的一个,呃,Java文件在,那如果有了这样的一个配置的Java文件在的话,在配置文件当中,它其实就可以啊,这个就自动完成或者是自动感知啊,就是刚才比如说我写个part,它自动就感知出来,还有这个,比如说这个application。
05:33
Application pass啊,就比如说这是spring下面的一个对吧?啊还有。嗯,Name啊,这个也是spring下面的一个对吧,它都可以做自动感知的啊好,我把它还原回来。好,然后呢,所以就意味着什么呢?既然我们写的这个程序跟它其实都是差不多的,是不是,那就说明我们写的这个程序呢,其实也有办法在这个地方做自动感知,也就是说假设说我不这么写,我呢就直接写一个region ID。
06:13
瑞珍ID哈ion ID其实应该自动感知出来,就是它其实是有这种自动感知的这样的一个啊解决方案的啊,那么因为我们现在呢,没有去按照它的这个啊要求去添加什么呢?去添加这个叫叫叫做annotation processor啊,或者是它的这个配置叫spring put configuration annotationor not configu,没有添加这样的一个配置,所以呢,就没有办法自动感知,那么解决方案是什么呢?你可以点击这个open documentation。
07:02
好,我们来到这个。啊,它的这个文档页面当中,啊,这是spring的一个官方文档,然后在这里面呢,他又告诉你,他说啊,Genating your own my data by using the annotation processor,他说你可以呢,去生成你自己的这样的一个原数据描述,啊,然后呢,用什么呢,用annotation processor,然后他说什么,他说you can easily generate your own configuration make data file from it an,啊,Take with,就是是这个东西,就是你在使用这个configuration properties的这个地方。就它啊,在使用configuration properties的这个地方呢,你可以去自己生成你的啊配置文件描述信息的原数据对象啊,那生成这个的结果会会有就是生成这个会有什么效果呢?就是刚才我说的,如果我们生成了针对于这个配置文件的一个原数据描述对象的话,那么这个配置里面的一些内容我们就可以自动感知了啊,所以他说的就是这样的一件事情,那怎么去做呢?具体他说呢,我们需要呢,去使用这样的一个依赖啊,叫spring boot configuration processor JA啊,就是添加这个spring boot的配置文件处理器依赖啊,然后那所以呢,我们就可以把这个依赖添加到我们的应用程序当中。
08:35
在这个地方哈,可以添加一下。好。接下来呢,他说。啊,就是如果你去啊定义了这个configuration process啊,然后呢,你得就是重新打包啊,其实或者是怎么样呢,或者是直接重新编译我们的应用程序就可以了,然后呢,现在呢,我已经把这个呃依赖添加好了,添加好了之后,大家看这面这面是不是这面就变成灰色的了,那它就不是啊,就是红色的那种提示信息了,就说明呢啊。
09:14
这个刚才我们添加的那个依赖呢,已经对这个应用程序呢起了一定的作用了,然后我们再来看一下它灰色的这个里面说什么,他说rewre spring BOO configuration anation process to update generated,他说呢,你要去重新的去运行这个spring。配置这个注解的处理器是吧,你要重新运行一下,然后呢,以便于呢去更新啊,重新生成的这个原数据描述,然后那怎么去重新运行呢?实际上我们就直接把这个项目呀,给它重新build一下就可以了,所以呢,在build这个地方,我们直接build project。
10:12
好,这样就可以了啊,然后这面重新运行之后呢,这面我们就是他让我们做的事情,其实已经做了,我们就把它害了就可以了,以后呢,他这个啊提示就不会出现了,然后接下来呢,还有一个配置就是需要配,因为我这个idea我已经配好了,所以他就没再给我提示,你的idea如果没配好的话呢,它会再在这个位置给你一个提示的啊好,你点开那个提示,那个提示在哪找呢?如果你这边就是比如说我现在已经没有那个提示了,我去哪找呢?在我们的这个配置当中啊,配置当中我们找到。嗯,Build compeller anno process,把这个anno processing呢给它开启。所以这面叫做settings,然后呢failed,然后呢,Compeller啊,然后anno process,默认情况下这个是go雅学,你把它开启哈,Enable an process好,这样就可以了,然后呢,这个都做完了之后呢,我们再回过头来看一下这面的阿里云的这个配置,比如说我写一个region,大家看现在这个。
11:22
呃,提示是不是就有了叫做阿里云SMS瑞珍ID啊,然后同时呢,还有这个PID。好,你看这个是阿里云SMS piidd啊,所以这样的话呢,我们就可以去啊去去写了哈,这样写和这样写,其实它最后翻译出来都是我们的这个啊。都是我们的这个PID啊,但是我们很少会会这样写是吧。就是TPID写对吧?好,那所以这个其实就是能够让我们自己写的这样的一个配置呢,啊,然后呢,变成我们整个系统当中的一个原数据信息,那有了原数据信息之后呢,我们再去写配置的时候呢,它就会有一个自动的提示了啊啊是这个意思。
12:09
所以这个东西其实并不影响咱们程序的运行啊,只不过就是我们在写程序的时候,有的同学呢,就希望把那个红色的一些提示都去掉,那就用这种方式,另外呢,如果用了这种方式,我们可以先编写这个文件,然后呢,再在配置文件当中,以自动感知的形式呢,去配置各项基本信息就可以了。啊,所以这块呢,是我们所说的配置文件啊的一个处理啊。
我来说两句