引言
在上一篇博文中,写完了如何快速构建一个生产级别项目,当然,搭建好了也只是才开始,后期开发过程依然从满艰辛
现在来通过源码看看springboot为什么这么强大
父工程介绍
这里用到的依然是上一部分新建产生的项目,创建springboot项目第一步是导入依赖父工程,那不妨就先来看看父工程长啥样子,父工程为何这么强大
先进入父工程pom依赖:(按住 ctrl,左键进入,进入源码一样操作)
进入我们自己创建的父工程当中,第一眼就看到了还有一个父工程,如下:
父工程的父工程
当然,这就是上一篇入门中提到的父工程的父工程,除了父工程引入,其次就是一些项目的信息,然后便是一些属性定义,最下面的全是build的内容,build里面那些都是啥玩意?现在别去管,入门重要的是知道父工程这个概念,现在就进入父工程的父工程吧
如下图(部分):
看到上面很清晰的圈起来的东西吗,用过maven的可能也不认识,但是你去读读意思,懂了吗,全是关系项目介绍,没必要看的东西
重点来了,下面三个包,这次的properties和build和这个工程里才有的dependencyManagement,这三个收缩起来的是干嘛,当然,这就是最重要的东东了,就不能像刚刚那个直接忽略了,一个一个来打开properties:
大家可以看到,这全是版本号,应该知道拿来干嘛的了,全是来预定义版本的,这应该是最先直接看到的springboot强大之处的吧,它解决了大部分的版本冲突,为什么是大部分而不是全部,因为可能自己开发中还会导入其他外部依赖,但是这个地方定义的版本号已经可以说让你在开发中不会遇到像以前那种版本冲突了,这里大概算一下,183个版本号定义,想一想,让你去同时依赖并且自定义版本这183个依赖,你不会产生版本冲突?我觉得基本不可能。
现在看完了版本号管理,看一下第二个dependencyManagement,打开如下:
没见过这结构?没事,现在给你普及知识,平时导入依赖都在dependencies里面,但是现在多了一层,翻译过来,依赖管理,懂了吧应该,依赖管理就不是导入依赖的意思了,它来管理好,谁要用了直接依赖,就不用定于版本了,版本这里应该管理好了,真正导入依赖的,就是在我们自己创建的工程当中了,可以看到,有直接在这写版本的,但是后面其他依赖管理更多是引入的是上面的版本定义,防止版本冲突,这简直是解决了开发中经常遇到的大问题啊,不得不说springboot的强大
最后打开build:
可以看到里面只有一个pluginManagement,上面的dependenciesManagement看完了这里的应该就知道了,当然是插件管理,意思和上面相同,现在看完该pom文件了,相信就清楚了为什么我们创建工程后,依赖了父工程就导入依赖为什么不用写版本了,为什么springboot可以解决版本依赖了