00:00
好,同学们。那上一讲给大家介绍了如何用整合active MQ,那现在在外面企业里面,从实战的角度而言,Spring spring boot同样重要,那么我们接下来是不是也要给大家介绍一下spring boot整合active MQ好,那么对应的方法步骤、模板、套路以及相关的常见常用不同相关的标签和注解好那么呢,老规矩,请跟着杨哥一步一步来实战实操。好。二话不说植入主题,那么咱们先以队列为准,然后再说主题发布和订阅。那么。老规矩。只要是队列,那么一定要有生产者和消费者,那我们呢,开始呢,一步一步一步的来,那么这个时候的话呢,来吧。首先新建每本工程,并设置包名和类名哈,我的工程名呢叫boot MQ producer,包名呢叫这个,那么为了给大家呢进行。
01:05
节约时间,因为说过了哈,你这这个不演示了,所以说杨哥呢,已经是提前建好这些工程,那么。把基础类的类名,因为建包名啊,这些浪费时间,我们时间太紧张了,杨哥提前做好,但是呢,代码呢,当着你的面,当场一行一行的敲,一行一行的讲解好了,那么所以说套路,那么新建一个工程第一步会吧,那么。第二步,我们要干什么呢?是不是的po的XL,那么我们点开搂一眼,那么如果是spring boot了,那不用多废话,我们现在用的boot的版本呢,是2.1.5,那这个我就不啰嗦了,红色部分,那么请大家关注的,那么来这些。什么我们的?报名我们的工程名不投MQ整合的生产者好,那么。
02:01
主要spring boot和active MQ要整合的话呢,一定要引入这个包,那么注意版本号二点一点五点,Release版本是一个成熟稳定的,现在spring都到2.0时代了哈,那么去年我讲的cloud呢,那个是1.5.9的那个版本哈,那么现在呢,我们也已经全部升级为2.0了,那么同学们两个班两套哈,就是杨哥讲的cloud公开的那是2018版的哈,那大概是1.5年以前,一年半以前的了,那么现在请一律用内部我们新版的。Spring cloud OK,永远是以最新的为准哈,那么这个呢,杨哥就不打开那个脑图了,那么用2019版的spring cloud,那么这些都详细的讲解过,那么这个po点,那么坦白讲一张,OK,不废话,那么杨哥呢,已经提前粘好了,那么这个呢,我也就不再多啰嗦,那么这一步也不重要。好那么一张。那么接下来我们呢,干嘛?是不是先工程。由于。
03:04
配置大于约定大于编码,那么我们建完工程以后,对于spring BOO而言,是不是先解决配置文件,然后咱们再说代码的事啊?那么现在呢,我们是不是叫application.ma。好,那么怎么玩呢?首先说微服务干嘛?是不是要service端口?那么假设我们这个生产端口随便乱写一个什么777。OK,那么注意啊,讲过了spring BOO这个冒号后面是不是一定要有个英文的空格啊?OK,那么这个是呢?先说说微服务,我的习惯,第一行永远是端口,那么跟人家讲哪个微服务7774个七好吧,那么第二个那么跟以前整合的时候差不多,那么啥概念呢?同学们还记不记得我们spring整合的时候乱七八糟,那答对配置文件。那么言下之见,我们是不是跟这个类似啊?也要告诉人家我们的什么connection factory,你连的是哪一台MQ?
04:02
对吧,这个是spring的时候,那么一样到我们spring boot说难听点是吗?还是熟悉的配方,还是熟悉的味道,只不过。我们呢,从框架底层呢,一个从spring换成了spring,好,那么跟着杨哥来,那么第一个我们的流程套路都这样啊,第一个杨哥讲的特别细,特别慢,你一步一步跟着走,后面听懂了,那杨哥就是粘代码了啊,节约时间,那么呢spring点。Active MQ。然后呢,点broke URL,那么一看这个也应该明白是什么意思吧,第一组是端口,第二组你懂的是不是我们的TCP冒号,那么192.168.111.136OK61616。那么这东东是什么呀?那么是不是自己的MQ服务器地址啊,那么注意哈,用自己的,那么杨哥的IP是这个,你别到时候一扎杨哥不好使,抬着本子上来问我,这就傻叉了啊。
05:08
那么接下来我们干嘛呢?User?那接下来这一步是什么东东呢?是不是要指定这个服务器的用户名和密码呀。那这个东东什么意思呢。我们用。那么。PASS2我们也是din,那么注意在这我们就指定了我们的什么,相当于说访问的地址,用户名和密码,那么第二个我们要告诉他我们这个目的地destination是队列Q还是主题topicical,那么所以说我们这儿又有spring,然后呢是GMS的。然后呢,请大家看这有个怕。Sub do,那么应该是发布订阅嘛,对不对,那么它的意思是这有个true和first,我们这儿先选first,为什么那么。
06:07
他这儿。的意思是,负四就等于我们的队列。他这如果是错,就等于我们的脱皮口,同学们这一步你要懂,OK,那么所以说这个一定要写啊,我推荐,那么那那那你不写呢。不写它的默认值就是副,那么这个时候就证明什么,你这行如果不写也可以,但是日后你调程序可能比较麻烦,不写默认就是什么东东队列啊,Supreme这有点特殊,请同学们一定注意这些配置细节,那么再来,那么下面是不是?自己定义。队列名称,那么言下之意就是说穿了,打到这,假设这有个队列,那么这个队列的名字叫什么?那么此时呢,我们呢,叫。卖。Q,我的队列的名字呢?
07:01
叫什么呢?Boot整合我们的active。MQ,然后呢,是。Q,那么这个就是我们的什么第一步完成了我们的OB要么好吧,那么杨哥一步一步的带着大家来,那么第一个。端口号说过了,我是最我个人习惯有热微服务服务,服务就是端口,端口就要这个服务。那么言下之见,我们。第一行永远是什么端口号,第二个,那么。用户名、密码访问哪一台机器的MQ?那么现在。杨哥的机器111.136没问题吧,Active MQ的服务器,那么所以说在这,那么me me,那么在这GS的PU还是subb是吗?不是,是副词就说明不是,那不是是什么,不是就是队列,OK,那么这个就是我们的application yama,这是我们的什么东东?第三步,那么第四步叫配置我们的并,那这个时候的话,这个病是什么概念呢?是不是有点类似于框架的application context,那么言下之际,在这一步那么讲究呢?就要有一些小的注解标签,新的,那么同学们需要了解,那么首先我们这个东东要让spring管理起来,那么二话不说,Spring foot是不是脑袋上就要标这么一个component,然后呢,首先我们就要从这个配置文件里面读取我的队列名字啊,那么。
08:32
来吧,那么private。String,然后mine。Q,那第一种这是个string对吧,当然。你想一下,我们要是配置了一个产量,这个是不是相当于key和value配置了一个K建止,对,在我们的OB ya里面怎么把它读取进来,同学们思考并复习一下。OK哈,那么同学们不错回答的,那么这个呢,干嘛?是不是用我们的value注解标签,这个都是spring的基本功,Spring put的基本功哈,那么value,那么你懂的干嘛呢?Dollar,然后你懂的,那么这个时候什么。
09:12
大括号,然后干什么呀,这是不是MYQ,那么直接把它扔过来,相当于说我这么写的话呢,就是没有写死啊,非常灵活注入。我用这个标签去读我这个名字啊,那么以后我配的队列我就不用写死啊,我今天是这个名啊,明天我把它换成什么ABC是不是都一样啊,那么说明我们队列的名字啊,没有写死,都是通过什么注入和配置啊,替代了硬编码好那么接下来。重点下面那么干嘛呢?Public,那么我现在是以队列为准,那么。过来,那么干什么呢?那么好比这spring boot都要写个B,对吧?那么这一行原来讲过了,杨哥在给你们讲BOO和cloud的时候,那么这个是不是相当于spring be ID等于什么,然后class等于什么?言下之意,这种东东是不是相当于spring application?
10:09
看XL里面的配置啊,只不过现在是不是在boot里面呢,就用一个注解被替代,那么这一边讲新知识啊,一边复习老知识啊,一定要非常熟悉。那么return return个什么呢?注意尿active mqq,那么这个时候MYQ这一步,同学们看,那么言下之意就是说我在这个配置文件里面就告诉你。我呢,就要去按照你的配置,我们去访问,访问的名字叫这个,然后我的con b,我是return了new,我需要什么,就new一个,相当于是六六什么active m q,这这东东是个啥啊,是个队列,好,那么这个时候我们的配置第四步玩火OK,那么接下来第五步,那么我们是不是要用我们的队列生产消息了,那么来吧。
11:00
过来那么老规矩,只要是不套,那么。Component直接标到上面,那么接下来,那么这个就相当于我们的什么呢?Service层对不对,相当于一个service层,那么然后我们。跟以前一样。我们在spring的时候,我们怎么来操作active MQ是不是用一个东西叫g Ms templ,没问题吧,那么一样到了spring boot也有类似的东西,只不过它叫GMS啊,什么东东,Message?Template OK,当然它也保留了spring的这个,听懂了吧,那么我们呢,由于这个在spring的时候给大家讲过了,那么这次啊,我们在spring BOO的时候,尽量给大家把这个知识的深度扩宽,那么我们在spring里面,我们就用这个Jim s啊,Messing complete,那么OK,那么这个时候过啦,那干嘛和以前一样,那么你看啊,Outwa自动植入进来,那么O啦,那么接下来,那么你这个是队列生产,你要对哪个队列生产呢?那么prime vita,那么Q,那么Q,我这也弄一个那么过来。
12:14
那么这个时候呢,是凹凸Y,那杨哥这什么意思呀?言下之意,这是不是配置有个Q啊,那么这个Q等于什么?然后这是不是有个B,根据容器管理里面,以后我们是不是可以给它自动的注入进来啊,那么好,那接下来。那么我们要干一个什么事呢?Public void,然后product。生产什么message那?这个时候好了,这个是我们的,就像是service层里面的业务逻辑方法,那么你可以把它这个是不是当做一个DAO,那么假设是什么user DA,那么接下来是不是用user do调里面的增删改查,那么一样的套路,现在是不是用模板调用什么呢?你要产生消息produce。
13:03
消息,那么就是complete什么方法点是不是send,那么同学们。这个时候我们呢,换以前用这个OK,但是spring put特别牛,又给我们做了一些增强,那么这个时候请看convert convert and send,我们推荐用这个,为什么直接可以给我们做转换加发送,好那么这个时候干嘛呢?QUU,你发到哪,我发到我的队列里面,好,那么你看这个容器由于自动支入了以后,相当于说这个就在容器里面,你看这块是不是关联上了,OK,那么我们干一件什么事呢?那么这个时候。来吧,那么我们的直接我们就。id.random.to string.sub那么假设。零到六位吧,那么我们每次呢,就是点这么一个字符串来进行发送,好,那么同学们,我们的第五步完成,那么接下来我们是不是我们的主启动类,但是注意在这块完火以后,我们大家呢。
14:13
一定要。注意一个细节,什么概念呢?我们的主启动类现在好说,那么干嘛。直接呢?Spring,那么这个。May,然后等会再说啊,application.run这个呢,就不废话了,May的这么一个东东,May APP。点A。第2CLASS逗号二,然后这么搞定,但是我们现在想达到的效果是不是以后来调这个方法调一次啊,就往这我们的消息服务器上面就发这么一个字符串,六位的这么一个随机字符串,好这是生产者,但是注意如果你想用这些方法的时候,我们在这儿刷回来。
15:06
需要对,要开启一个注解,那么这个注解在我们的configgu b里面干什么呢?看好这我们需要有一个艾enable g Ms啊,这个是我们本次的重点,它代表干嘛开启了我的GS的这些适配的注解,好那么这个时候需要大家明白,那么接下来我们呢,是不是可以进入到我们的测试程序,然后是不是要写一个单元测试类了?好,那么言下之意什么概念呢?到了我们的第五步。现在我们的这个。第五步这个队列,那么大家请看我们你看哈,严格的来干,那么这个时候是不是用jamy STEM PLA好了,那么再来主启动内同学们,这个呢,好说也写过了,那么第五步到第六步,那么接下来是不是要写测试单元了,那么注意在这看着要有一个enable Jim s OK,好,那么到了我们的第七步测试单元,那么。
16:12
每本的标配不MQ的produced,那么我在这儿test Java,那么也见了对应的一些包,那么这个时候叫test active MQ好了,那我们来写一个单元测试类,那么由于spring boot呢,我们呢。讲完以后我就不再废话这些什么单元测试类怎么写,直接开打了。哈,到这到杨哥这,我认为这些是你要懂的,那么就是at,那么干嘛呢?Spring boot是吗?Test,然后呢,这个里面怎么写,是不是class。Is,然后等于我们的这是不是我们的may这个东东,Class第一步,那么第二步我们干嘛呢?Run。With,那么我们用的是什么?是不是spring的测试单元类啊?那么spring接unit for class re.class那么来,再来,我们这儿无二部APP configuration一套带走。那么。
17:15
到这儿啊,你千万不能问我说杨哥这三个是什么呢?那我打你屁股了啊,这个杨哥都详细讲过,那么我们针对于哪一个类开测,是针对于这个类开测,这个是以web的形式啊,因为微服务嘛,然后呢,这个呢,是不是因为我们是用的是SP unit整合了以后的一些东东,好那么。不多不多废话,那么接下来private,那么在整个容器里面,我们是不是要用到这个类,那么来吧,那么这个类我们是队列的生产者,那么一样队列的生产者,那么干嘛呢?过来这,那么以前我们是不是用个auto拓,那么这次再用个新的是么?Resource带大家复习一下,那么至于说在spring里面auto自动置入和这个resource,那么一定要注意,一个是spring啊,Auto那个是spring的,Resource是谁的?是Java的,听懂了吧,这是两回事,OK,那么这两个都可以作为设置的注入,那么好啦,那么public,那么VO。
18:12
Test。Send的。那么。Exception。那么有异常,我们。往外抛,那么言下之意,如果是单元测试类,脑袋上是不是要标这么一个test OK,那么呢?Product,第二,Product message那么拖拉,这个就是我们对应的全部步骤,那么接下来如果一切顺利,那么同学们,我们是不是应该在这儿就要发一条消息过来,同学们,这个没问题吧?那么好,我们选中它,Run test send。那么大家看微服务启动,然后如果一切顺利,那么往后弹我们呢,就应该打出来我们对应的东东,那么OK,程序运行完成,打了个绿色的勾,那么这个时候同学们我点一下看到没有1010,这个时候同学们是不是我们成功。
19:07
用spring跟active MQ整合了以后,往生产者发送了一个我们对应的什么东东消息进入到了我们的MQ,你看boot active mqq这个队列,那么回答我是不是跟我们这个名字啊,Boot active mqq这个队列名字啊,一一吻合,那么这个时候我们呢,这条消息成功发入到了我们MQ,好,那么这个就是我们对应的队列生产者。
我来说两句