00:00
好,同学们,我们接下来呢,继续。来,那么讲到这儿,我们呢,已经完成了前五章的学习,那按照杨哥给大家设计的大纲,结合现在外面的高频考点和真真正正要掌握这门技术,那么其实而言呢,我们的这门activemq分为呢三个阶段。那么就像爬楼梯一样哈,那基本上哈。每一阶比一阶高,一阶比一阶难,好那么前五章我们已经完成,可以这么说,现在呢?大家呢,从这开始。目前已经到这儿,那从入门到我们的。Broker呢?大家对于Jimmy是什么,什么是?队列,什么是主题发布、订阅。那么以及我们对消息事物的。
01:01
控制、持久化控制,签收控制,包括对GS的规范和落地产品的对比,那么我认为前五章给大家进行理论知识和入门的,甚至是什么Jim编程规范的具体要求给大家呢进行了详细的讲解,那接下来同学们我们不多说别的。就以之前我教大家写过的这段代码,标准的这个步骤是吧,Factory connection session等等等等,这是生产者,这是消费者,那尤其消费者是吧,那到就以队列为准,我们的这个呢,有receive同步阻塞的,那还有什么,我们的这个下面是什么监听器的,那同学们。那你们觉得写这么大堆代码烦不烦?我不知道你们什么感觉啊,反正我是绝对不会去写这样的代码,太繁琐了,就好比GDBC一样,最终我们是不是有一个神奇的框架,那么是不是我们最后的spring?
02:08
开始登场了,好,那么接下来呢,可以看一下哈,从我们的,呃,今天呢,主要是给大家讲一下spring和spring的整合,那说白了这些代码都不用写,但是这是基础,你要懂,你要学,那么所以说同学们不能浮躁是吧,那么从第六章我认为到第十章,那么坦白讲。就是我们的。中级部分。中级的意思是什么呢?就是说说穿了前面的理论知识啊,是入门中等,那就是你去企业里面就是用这些技术干活,那这个你是需要了解。重点掌握的企业就这么用,那么到最后我们的高级部分呢?那么言下之意就是activity t MQ的一些高级特性,比方说死性队列,比方说延时投递,比如说它的容错可靠性,对吧,以后消息重复消费以后的密等性控制等等,那么大家呢,就跟着杨哥过来,那么最后一张肯定非常重要,那么。
03:10
从入门到能够上手干活,到最后跟面试官,人家敢跟你聊MQ的时候,你也能够有这个能耐,至少跟人家聊上什么十分钟到20分钟之间,让他觉得你不是只懂这么一个hello word,好,哎呀,只会说一个桀偶异步消风,别的呢?还有吗?没了,那么不废话,那么接下来我们呢,咬咬牙啊,同学们呢,再坚持一下哈,我们呢,今天呢,进入我们的第六章。Spring整合active active MQ来吧。本着精简和。干货的原则,我也不给同学们长篇大论,就这么几步。足够你干活。来老规矩,那么这个呢,我们。
04:01
不想写了。那些繁琐的代码。那么从我们的这个工程。我见了一个spring,一个叫spring MQ的什么生产者,一个叫spring MQ的什么消费者。那言下之意。Spring和MQ active MQ整合了以后的一个生产,一个消费。那么第一步。建眉本工程对吧?那么不不多废话,那么言下之线,我们是不是要往poem里面添加跟spring相关的东东,那么来吧,红色部分,那么兄弟们ctrl a1张我就不废话了。那么重点是什么呢?Active题,Active MQ对GS的支持要和spring和这个整合,关键是这个包,那么我们目前用的是4.3.23release这个比较好的稳定版,第二个有一个石化的技术,那么这两个是什么比较重要的,Spring跟。Active MQ整合的两个重要价包,一个是spring,一个是active t,一个是active MQ。
05:05
破,那么最后呢,这些呢是A啊,那些乱七八糟一些标配了,我就不废话,那么第一步我们呢,需要。添加spring支持GS的这些包,那说穿了就整合的,那么第二步,那么spring是不是一定要有一个配置文件了,那么也就是我们的application content,那么以前我们自己要去写那些乱七八糟的activity。Connection factory,那么现在不用写了,那自然而然不用写了,那肯定是不是就配到了spring容器里面啊,那第一版开启包的自动扫描,那么我们的工程包。At硅谷active MQ那么好了,那么其他的呢,不废话,那么杨哥呢,先把它粘出来了,以后咱们呢,一步一步的配合着呢,给大家进行详细的介绍和讲解。好,那同学们Lowy,那么如果说害怕的同学,那么这么一缩,不害怕了,说穿了就三个,第一个配置,什么生产者和工厂,那么以前我们讲active。
06:11
MQ connection factory现在呢,叫jims factory了,那么言下之意干什么呢?你看这个里面有一些什么东东呢?Connection factory,现在spring给你底层做了很好的包装,你看这是不是有个石化的这么一个动作,那么同学们。对应到我们的PM.xl。那么大家应该理解这个包。什么意思了吧,好,我们的第二步呢,继续首先配置生产者和工厂,那么大家看我们有个GS factory类是用这么一个东东,然后来connection factory,那么属性有两个,一个是最大连接数,我这呢给他100,然后呢,Connection factory我们用的呢是这个,那么broke URL,那么注意现在是不是TCP,那么你看这个事很简单吧,以前我们是不是定义这个常量代码写死,现在只不过是从代码里面是不是录到了这个配置文件里面啊,那么注意这是不是要换成自己的IP,虽然说我让你们粘。
07:13
代码咱们手敲配置啊,这这这个不会有谁去写这个哈,这是第二第一第二个呢,那么我们这个队列我们就要创建了,那么请看我们这个呢,是什么东东来同学们这种方法叫什么呀?是不是spring里面的最经典的什么东东,是不是俗称构造注入啊,意思呢就是说。我并idea叫destination。Q,那么我自己起的,那么就你看active mqq,那么言下之意就是我们这个上面你可以把它理解为获得了connection工厂和connection下面就是创建,那么你这个目的地destination是叫什么呢?是叫。队列,那么然后这个队列的名字叫什么?叫spring和active MQ整合了以后一个队列,那么这你看这个是不是spring经典的构造注入啊,那么好,你看这个叫jims factory,这个叫什么GS,什么东东temp,这是我们的什么第三步,那么大家呢,都明白是吧,对于。
08:19
我们。学习的时候一定讲过,那么如果你要去做增删改,尤其spring这种万能胶水型框架,基本上现在是Java的标配了,那么如果我们要去操作GDBC,那么弟兄们你们懂的,这哥们是不是出了个DBC他们塔?那么如果我们要去操作,这哥们是不是又出了一个ready?Template,那别的什么叉叉template我就不废话了吧,那么一样,现在我们需要他来操作我们的GS啊,来吧,看吧,那么connection factoryy,那么大家请看什么意思啊,是不是引用了上面的这个factory,那么再来default destination,也就是说你创建了以后,你这这一个JA template相当于我们的这两个template,那么你要告诉他你操作的是哪个连接,那么操作的是个。
09:12
队列还是个主题,我们这个默认的目的地,请看这两个名字是不是destination q,那么言下之意是不是我们要用GMS这个模板去操作基于这么一个连接上面的一个队列呀?那么再来me,那么simple message有一个消息类型的转换,那么类似于帮你做了一些强制和底层的一些适配,OK,那么这个呢,就是我们整合的什么?第二步获得了我们的application content xm,那么这个。过,那么第三步。队列的生产者和队列的什么消费者,那么由于我们配了这么一个东东,那么说明什么意思啊,是不是支持组件的扫描啊,那么好,那么杨哥呢,也不废话,对于spring整合这呢。
10:00
直接开打,那么干了一件什么事呢?创建了一个。是吗?生产者,那么当然了,那么这边一开始这个说穿了是不是就是我们的业务逻辑层呢?那么所以说二话不说,编码以注解为准,那么干什么呢?直接脑袋上service啊,没问题吧,那么以前我们service啊是干什么,是不是调什么user DA啊,那么现在没了,那么现在我们要干什么呢?Private,那么注意你看我们的配置文件,现在我们要用模板去操作谁呀,我们现在是不是有个GMS的。Template呀,OK,那么所以说在这一块呢,我们呢,需要完成的内容呢,注意这是整合以后的什么生产者,所以说我们要的是GMS。Complete那么好,Complete那么老规矩干嘛?奥拓呀,自动植入进来,那么来吧,那么直接写。
11:03
那么第一步application context,那么是不是我们的spring标配的写法ctx啊,那么干什么呢?你要class,哎,这些不废话了好不好?那么这个时候呢,Application。那么。Contest。第2X秒,那么是不是去读我们。这一个resource。目录下面的这个spring的标准的配置文件啊,那么这个配置文件啊,这个。我们呢?老你们干什么呢?保守一点是吧,省得我写错了你们。应该是没写错哈,不过我们保守一点还是渣好,果然没写错,那么过来,那么这是第一步,那么第二步干嘛?换句话说这是service惨,那么杨哥这儿呢,就图简单,本来如果绝对按照我们的模式,这块是不是应该还有一个什么controltrller层,然后让那个controltrl了去调这个service啊,那么这块呢,我就少写一个类,那么由于我自己脑袋上是不是标了个service了,那么这边我也能获得,那么干什么呢?那么这一块。
12:12
过来,那么produce这个是不是生产者,那么干什么呢?那么我们的Ctx.get b哪一个?那么言下之意你懂的,只要这个类加了这些注解,被容器管管理起来,默认的是不是首字母小写,我们就可以得到这个病啊,这一步同学们能理解,那么来有异常,我们往外抛,且有一个强制类型转换,那么言下之意这步能理解吧,就是说由于我这儿配了这么个东东,相当于说。容器里面spring标准的对吧?脑袋上加了的,它就在容器里面的个对象,那么默认首字母小写以后用它就可以获得,那么言下是有有这么一个类了,以后我是不是可以调用GS的template了?OK,那么这是我们的第二步,那么第三步我要干什么呢?兄弟们,那么product。
13:04
点g Ms temp,那么是不是这个类里面的一个对象,没错吧,那也就说这一步同学们没问题吧,你要是再有问题,你可以把这么理解,就相当于说这我就写了个。等于六。这么说没问题了吧,那么言下之意干嘛?Product e.g Ms temp这么说能理解,只不过现在如果用spring,我肯定不会去new了,对不对?那么所以说呢,我们呢,用直接用get b这样的方式注入嘛,一再注入这些都是基础知识啊,你不能再让让杨哥现在在给你讲spring了,这我就崩溃了,那么这个时候的话呢,干嘛往下翻,那么生产者product这个对象里面的Jim,那么你要生产个什么东东呢?那么send。然后它我们呢,目的地我们已经有了,那么什么意思呢?你看他这是不是有很多send,那么生产者是不是就是send嘛,他有很多构造方法重载,那么比如说同时告诉他目的地和me create,那么是不是发送什么样的消息,那么我们用第二个。
14:13
那杨哥你为什么不指定这个呢?兄弟们,干嘛能少写代码就少写代码,请看我们这个James temp,我是不是依赖注入告诉你了,我最后是不是丢到这么一个里面能理解,那么所以说呢,我就不写代码配到容器里面了,那么以后我建了一个队列,我就粘这段代码,呸呸呸,配。一直配下去,然后你需要哪一个,你就粘哪一个好,那么接下来那么这个是send,那么。我们利用message creator。那么来。那么开高,那么这块我先把它写完。好,那么这个呢,什么message create什么东东,接口这个接口里面有一个方法叫create message,那么要传session这些动作,你看还是熟悉的那些动作,对吧,那么兄弟们接口这个接口里面有几个方法,一个有且仅有一个,怎么着是不是拉姆达表达式啊,可以用起来呀,好,那么呢,我们这现在是不是先用的是什么匿名,累不累,那么过来吧,那么开高,那么刚才说了,我们呢,先把它写完好吧,那么一样。
15:22
Session,那么跟以前的套路是不是一回事啊?Session点什么?Create contact message,兄弟们,这一步没问题吧。那么这。SP。和active。IQ的。整合case。好,那么来,兄弟们。Text message,那么这要有return,那么返回什么呀?是不是返回我们的这个?这么这一步同学们能跟上啊,好了,那么假如说你要换成拉姆达表达式啊,那么应该怎么写啊,同学们。
16:04
那么来吧么干嘛呢?这个是什么接口对不对,这个接口里面有几个方法,是不是有一个,那么是不是杨哥的口诀,走起来直接干嘛。拷贝小括号,写死右箭头落地大括号,那么由于它这个干嘛只有一个参数,我们是不是可以把类型都给省了,那么这个里面我们说狠一点是不是直接就是。什么东东一行代码就可以给你搞定啊,那么来,那么这一边边去掉,那么现在。我们呢,直接三行代码,OK,那么这一行代码么,讲过了同学们没有,没有任何问题吧,那么相当于说这就new了这么一个东西,只不过是spring以后我们直接是不是用get b获取,那么来。
17:00
现在我们呢,整合的case啊,那么假设111吧,那好说一点哈,别到时候读这么一大句话,我这就说是一一,那么OK,那么这如果底层运行到这句话,那么就是。比方说send。Task。Over OK。那么同学们。我们的spring和active MQ整合以后的生产者。完活,那么以前那些啰里啰嗦的代码没了,就活用一个JA temp配即可,好,那么来同学们,那么对不对呢?灵不灵呢?那么大家请看。好,那么现在我先把它删掉好吧,干干净净的,现在什么都没有好了,那么我们现在呢?直接。Active MQ是启动,启动着呢,那么好,那么现在根据我们的要求,也就是说待会是不是应该在active MQ里面,在这个队列里面就会看到名字,就会有这么一个队列,没问题吧,你看目的地是队列,我是不是配进spring的容器里面,交由GS temp告诉他,你就操作这个队列,那么言下之夜就要看待会有没有这么一个名字在我们这个里面,好,我们直接跑一步来看看,我们首先来看看我们的生产者对不对,来。
18:24
运行。好,同学们,请看supreme的produce生产者send taskover OK,那么这个时候你懂的,如果到这一行说明是不是全部结束啊来了,那么这时候同学们,我跌。有没有spring activeq,那么有一个未消费的消息,那么01010 OK,那么这个就是我们spring跟我们的active MQ整合以后所编写的生产者,那么接下来我们是不是就要写写我们的消费者了?好,那么下一个题目再给大家说。
我来说两句