00:00
好,前面呢,我们编写了一个的,通过这个hello,我们也发现,哎,确实简单好用,它呢只需要写一个主程序来启动spring boot的应用,接下来呢,我们就按照我们的业务逻辑来编写一些controller service,我们根本不需要做任何配置,那为什么会有这么神奇的哎,一个现象呢,我们从它的po文件开始来分析一下。好。我先来说它的这个po文件。Po文件,在这个po文件里边呢,就是我们导入了相关依赖,这些依赖呢,帮我们来导入了这么多的炸包,而它们是怎么样作用的呢?首先这有一个叫这是一个负项,好来说一下这是一个负项。来,我们导入了一个负项目,这负项目呢,我们叫spring BOO start parent,就是说spring BOO,所有start的这个负项目,副项目有什么用呢?我们在以前开发一般都是用来做,是不是依赖管理啊?那我们来看一下我们的这个项目。
01:15
点进来,哎,我们发现这个负项目呢,它还依赖一个负项目叫depends,好,我们把它复制来。它的咱们这个浮层。负项目。是这个spring depend,好,那么这有什么用呢?我们再来点进去来看一下,好在这个spring depend里边下翻,这有一个properties属性,属性里边呢有一个叫dependency version,它定义了每一个依赖的版本,比如我们后来要用的MQ的依赖,包括呢,我们这个做切面的PE接的版本号,包括我们来卡这些什么数据库的这个驱动等等等等,我们这个commons的依赖往下翻等等等等,我们后来要用到的几乎是所有场景要用到的所有炸包依赖,那BOO都被都为我们进行了依赖管理。
02:15
这个负项相当正。管理应用。不同应用里边的所有依赖版本管这些所有的,所以呢,我们也可以把它称为spring的咱们这个版本。仲裁中心,哎,有了它以后,我们以后啊,相当于以后我们写炸包能导入咱们这个依赖默认呢,是不需要。写咱们这个版本的,如果导了一个MYS驱动啊,默认呢是不需要写版本的,你所有的版本依赖都在我们这个dependence这个项目里边进行了管理,当然也有一些比如我们没有在咱们这个depend里边管理的。
03:15
管理的依赖我们自然要来版本需要声明版本号。好,这就是我们说的第一个它的这个负项目里边的这个版本仲裁,好,接下来呢,我们来看第二个。那么我们这些炸包既然负项目呢,只是作为一个版本仲裁,那我们这个炸包是由谁导进来的呢?来看一下。我们在我们的这个项目里边,除了依赖这个负项目外,好,我们这儿还有一个叫start web,我们导入了一个依赖。这个导入。的依赖,哎,我们导入了这个依赖。
04:03
这个依赖呢,也没有写版本号啊,因为我们这个帮我们自动仲裁,然后呢,它的这个名叫startb swim starter web,然后呢,我把这个东西啊,给咱们拆成两个词,哎,一个是t starter,一个是web。我为什么要这么拆呢?哎,大家来看我们以前的负项目是不是叫start的parent吧,就是呢,我们这个start的负项目,我们这个是starter里边的这web,而什么叫start呢?四呢,哎,我们称为场景启动器。创景启动器好,那它的作用是什么?我们不妨进入我们这个spring start web点进来,它在这里边呢,诶它有生明一些依赖导入,这依赖导入呢,他说它依赖这个基础项目,也依赖咱们这个里边的,还有哦,我们来做数据校验的,还有我们这个支持扎son的,还有我们这个。
05:22
MVC2个包啊,原来我们这个start web,它其实呢,就是帮我们导入了web模块,需要正常运行,运行所依赖的咱们这个组件。也就是说呢,场景启动器,当我们要用web模块的时候,它帮我们来导入web模块相关的依赖,但依赖的版本都受负向进行仲裁。而在boot里边,还有类似于更多的这些启动器。
06:02
我们可以参照一下STEMBOO的官方文档,哎,C home,我们来到首首页来搜一下,叫start,诶,Starts,这个starts呢,官方说了,这就是一系列依赖描述的这个组合,我们可以通过导入这些starts,哎,我们就会有相应的依赖了。来看S呢,将所有的功能都抽取出来了,一个个的场景,比如我们要用GMS或者MMQ,那么呢,就有active MQ的这个启动器,如果我们要用AMQ,我们高级消息队列,那就有这个启动器,我们要做AP功能,我们就导入这个启动器等等等等,比如我们要做哎,数据库GPA访问,我们导这个,们做数数据访问的red模块,我们导这个,再接下来,如果我们要进行邮件开发,我们导这个,如果我们要进行web开发,我们导这个,也就说呢,一句话。
07:02
Spring将将所有的功能场景。都抽取出来。然后呢,做成一个个的咱们这个start,也就是说呢,我们称为启动器,当我们导入,我们只需要在项目里边引入这些。相关场景。那么这个相关。场景的所有依赖。都会导入进来。而且呢,版本由进行自动控制,我们要用某一个功能,要用什么功能。就当什么场景。就导入什么场景启动器。
08:04
场景的启动器,哎,这呢是一个非常重要的模块,诶启动器我呢就不叫导入的依赖了,我就把它叫启动器,哎,有了它以后呢,我们每一种场景s boot呢都帮我们考虑到,我们只需要导入这个启动器,那应用就走起来了,比如我们这个web,哎,你点过来这一块呢,就会有po文件来描述我们这个场景会导入哪些,比如我们来看邮件开发场景,哎,你点进来,那么呢,它就会来描述,如果你要用这个邮件开发场景,S将会给你导哪些,诶给你导啊,大家默认都要用的S还到s spring环境,还有环境支持,还有我们这个Java X,我们做邮件开发最底层的这个Java X API等等等等,所以呢,大家都可以来参照文档,哎,Spring boot有多少种场景,全部都在这,那么未来呢?就是围绕着它来编写spring BOO的应用。
我来说两句