欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

知识小罐头01

程序员文章站 2022-07-31 20:18:47
在一边学习springboot源码的时候,也会一边更新一点知识小罐头,所谓小罐头,就是一些零碎的,平常没有被太多注意的小知识,有的时候可以触类旁通,还能增加自己的知识底蕴。 而且不能一昧的沉迷于源码,有的时候也会造成眼光的局限,就只会一两个框架,其实不利于自己的发展,谁知道几年后这一两个框架会不会没 ......

  在一边学习springboot源码的时候,也会一边更新一点知识小罐头,所谓小罐头,就是一些零碎的,平常没有被太多注意的小知识,有的时候可以触类旁通,还能增加自己的知识底蕴。

  而且不能一昧的沉迷于源码,有的时候也会造成眼光的局限,就只会一两个框架,其实不利于自己的发展,谁知道几年后这一两个框架会不会没落。

  下面只用大白话说,不扯spring源码,有关的代码只有两三个自己写的简单的类(其实自己写的简单的类,包括属性、构造器、set、get方法,这种类有很多称呼!在javaweb中被叫做javabean,在ssm框架中别叫做pojo,dto,mapper,vo,大白话就是实体类)。

  明明就是一个东西,为什么这么多名字啊,有病啊?我的第一感觉就是这样。

  但是,我当看见过martin fowler一段话让我对这些名字彻底改观,martin fowler鼎鼎大名,他说过一句话,

  "we wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. so we gave them one, and it's caught on very nicely."

  翻译:“我们很想知道为什么人们如此反对在他们的系统中使用常规对象,我们得出的结论:这是因为简单对象缺少一个响亮的名字。所以,现在我们赋予了他们一个名字,并且反馈的效果非常好。”

  所以我们不要因为一些类看起来很简单,别人看起来很弱智,就不用,而追求那些非常复杂的类,这样太本末倒置了,适合自己的才是最好的。

  咳咳,不瞎扯了,今天看一下监听器的基本原理。

  来看一段公司---员工的逻辑:

  首先:员工4个(user)-------->加入一间公司,公司的老板是boss(可以看作是向boss可以坐在办公室管理所有user)------------>情况:boss可以随时向所有的user加工资,但是不可能一个一个的给你发,所以boss只要总经理manager说一下,boss就可以去度假去了,其他事总经理去做。

  总结一下就是:user先要加入公司---------->boss只要对manager说话-------->manager就会所有执行操作----------->user就加工资了

知识小罐头01

知识小罐头01

知识小罐头01

  知识小罐头01

知识小罐头01

 

 

   好好体会一下这个逻辑,其实就跟微信公众号一样,很多个用户关注一个微信公众号,只要微信公众号一发消息,所用户都能收到信息。

  大家还记得23种设计模式吧!

  反正我是不记得了,我只记得有个23种,其中单例,消费者模式,咳咳,惭愧惭愧!而今天例子这个在23种设计模式中叫做观察者模式。

  对的,大家在ssm框架的时候,肯定配置过一个contextloaderlistener,其实监听器用的就是观察者模式,也就是和今天的这个事例基本逻辑一样。

  对应关系(spring):ioc容器-------->boss ; 消息派发器--------->manager ; listener------------>user

  启动一个web应用(以spring为例)用大白话说一下监听器过程:最先开始的就是肯定是ioc容器的创建、刷新、初始化(其中就包括初始化消息派发器以及配置监听器,将消息派发器丢到容器里),实例化剩余的bean之后,ioc容器就会发布一个消息(我完成啦,后面的工作就交给你们啦~),此时,就会从容器中获取消息派发器(会自动收集容器里所有的listener),将消息派发出去。

  其实ioc容器的创建过程是非常复杂的,我这里只是给萌新说了一点最粗略的,有助于理解其中的逻辑。

  因为,用,谁都会用,不就是配置一个监听器,然后自动的就可以用了嘛,主要是其中的原理性的东西才是最经典的。