00:00
然后下边我们说哈,我们来学习,这个学习ma呢,是理论和操作呢交织着在进行啊,理论和理就是理论和这个操作交织在一起的,那么我们说哈,从理论上总的来说,这个mini啊,它会概括为这么几个核心概念,我们结合四个五个微问工程啊来介绍这些核心概念,第一个呢叫约定的目录结构。第二个呢叫POM,第三个呢叫坐标,诶第四个呢叫依赖,第五个叫仓库,第六个是生命周期,呃,生命周期呃,插件目标啊,这都是这个可以一起来介绍的,嗯,第七个,然后第就是这个叫继承,第八个聚合,哎,我们围绕这样一些概念啊来了解这个面这个工具,其中呢,当然最重要的哈,嗯,就是这几个是属于比较重要的,然后最重要的是这个依赖的这个啊,这是最核心的,我们可以这么标记一下。
01:14
这几个我们标一个蓝色,这个标一个红色。其他这些呢,我们就是也就是这个了解一下就行了啊呃,那么我们说呢,我们在这儿呢,需要去呃维护,就是需要去通过这样几个妹问工程哈,来这个呃,介绍这样一些概念,所以我们下面呢,先创建这个第一个秘密工程,创建第一个命问工程,我们首先第一步呢,得去创建一个约定的目录结构,这个目录结构啊,我们说这个可以去参照我们这个。
02:00
讲义里边。大家看我们这儿有这个操作指南啊,操作指南我们这个讲义里边主要说的是,呃,理论方面的操作指南呢,就是这个操作的具体的步骤,这个就可以关了,这个也先关掉。那么在这儿哈,这个是这个我们操作的这个核心程序的步骤哈,这个一会儿我们再说,现在我们建这个第一个main问工程啊,我们需要去建这样一个目录结构,哎,我们先介绍一下这个目录结构啊,这个根目录呢叫hello,就是看你这工程叫什么名字,这个根目录就就叫什么名字,诶首先呢,这个第一点根目录就是这个工程名,哎,用工程名来这个命名,然后这个根目录下边呢,有一个src这个目录,诶那当然这个目录下边是放这个源程序的,放源码的SC目录源码,然后呢,还有一个pom.X毛这个文件,这是一个ma工程的核心配置文件,我们一会会专门说啊,这个就是po这个概念就是从这来的,然后呢,这里边还有一个闷。
03:20
还有一个test men呢,就是主主要的这个意思,那么这个时候这个目录下边呢,放的是主程序,存放主程序,那么这个test这个目录,诶存放测试程序,然后呢,闷和T的下边呀,又分别有这个Java和resources,那么Java呢,就是放我们Java源程序啊,放我们这个诶Java的源文件,他呢是存放我们这个Java的原文件。
04:05
诶,然后这个resources这个目录,那因为resource呢是资源的意思,所以这个里边呢是存放,哎这个我们说框架配置文件或这个。哎,框架啊,或这个其他工具的这个配置文件,哎,包括XL格式的加pro格式的啊,都都放这里边,就是放这个资源的,这是各个目录的呢,这样一个,呃,说明每个目录是干什么用的,那么我想大家可能会有这样的问题,为什么要遵守约定的目录结构呢?诶为什么要遵守这个约定的目录结构啊,我们先从这个,呃,我们从这个两个角度来说哈,一个是从就是从women本身的角度上来说,就是ma呢,要负责负责我们这个项目的自动化,自动化构建,诶我们以其中的这个编译这个过程为例,微问要。
05:20
讲自动自动进行这个编译,哎,那么它必须知道这个Java源程序就是源文件啊,Java源文件保存在哪里,巧妇难为无米之炊啊,没问他再强大这工具,它再强大,他找不着你这个Java源文件在哪,它也没办法去给我们做这个编译啊,这个应该说非常这个好理解,那么这时候大家看我们这个src这个目录下边找到main目录,再找到Java这个目录,哎,那么这个时候呢,它就能够去找到它要编译的那些Java源程序,诶所以说这时候啊是呃,这个时候这这就是ma,它一个强制性的要求,他要求你必须放这个下边,不然你不放这下边,他就找不到了,他就没有办法去做编译了,这是从我们说这是从。
06:20
一个最具体的一个角度来说的。我们可以哈,也是这个往外再外延,再引申一点,再引申一点是什么呢?就是说如果我们自己自定义的东西,想要让我们这个框架,呃,知道,当然了,这个也也框架或工具哈,你自己自定义的东西,你想让别人知道,那你你就得这个有一定的这个采取一定的措施,你不可能无缘无故的让人家知道。啊,你想这个举个例子哈,咱们两个人,你别管是你两个人什么关系,你处对象也好是吧,你普通同事也好,朋友也好,你说我一个眼神,你就得能知道我想让你干嘛,这个一定是两个人有很深的这个很很长时间的磨合,非常默契了,才能达到这一点是吧,哎,你说这个咱俩这个刚认识,你就冲我冲我不断的冲我使眼色是吧,那我就那我就心里就发毛了是吧,这是想让我干嘛的,就就这意思是吧,所以说你肯定人人与人之间也是这样,我们和这个我们用的框架工具之间也是这样的,他不可能平白无故的知道我们自定义的这东西在哪,所以说呢,归结起来哈,其实是两种办法,怎么让他知道,一个是这个以这个配置的方式明确告诉框架,另外一个呢,就是遵守。
07:56
我们这个框架的约定。框架,或者说这个内部已经存在的约定,我们可以来举一个例子,比如说大家看啊,嗯。
08:14
我们这个spring大家都知道,我们去配这个spring的,比如说在这个外边插毛里边哈,我们想去配这个LC容器呢,我们只是举个这么个例子哈,我们有个context loader listener,它需要配这个context,这里边我们是不是这么写,哎,比如说这个spring context展,哎,那么你这个呢,就是以配置的形式明确的告诉框家,我们这个文件呢,它在哪啊,明确的告诉他,这个时候他就能够非常精确的找到你这个文件,这是一个办法。另外一个办法呢,就是去遵守他的约定,这个遵守他的约定吧,这个事儿我们现在呢,还没有明确的说哪个技术用的是这个哈,但是后边我们马上就会接触到,我们回头会给大家讲一个东西呢,叫log for街,Log for街呢是帮我们在控制台打印呃日志的这么一个工具,然后呢,这个并不是说你导了这个log街的假包,它就自动给你打印日志,你必须提供这么一个配置文件才行,这个配置文件的文件名呀,也没有地儿去配置啊,也没有哪个配置文件去配置文件名,所以这时候呢,你就遵守人家这工具的要求的这个文件名,人家要求就是这个文件名,当然了也可以是XL格式的,这两种形式啊,你要么就是有它,要么有它这个log破街,自己能够自动的去检测你这个类路径下面有没有这样的文件,要有的话,他就直接就拿过来就用了。
09:55
所以说这个呢,就就叫做这个遵守它已经存在的这个约定。
10:05
然后最后呢,我们说哈,其实现在呢,我们这个,呃,Java开发的这个,我们这个领域里边啊,咱们这个行业里边,基本上我们是有这样一个共识,就是什么呢?这个约定哈,是大于配置。诶配置呢,它有大于这个编码,哎,就是说我能够以配置的形式解决的,我尽量就不编码,我能够以约定的形式解决的,我就尽量的连这个设配置呢就都省略掉了啊,就是说不断的去以更高的这个程度呢,去简化我们这个开发啊,就更尽量以更高的程度去简简化这个开发,当然了,这个时候呢,就要求你哈,你的技术的功底呢,是要求你是越来越深厚的,写这个编码呢,要求你的这个开发能力呢,并不太高,你学会Java的基本的语法,其实就能够编码,但是呢,你要想能够通过配置去解决问题,那么就需要你对框架有比较深的了解,你要是想通过这个约定去解决这样的问题,你就得对这个项目的这个架构呢,有比较深的这个了解啊,所以说这个也是可以说程序员发展的这样一个路径啊,你去了公司里头以后呢,可能开始的时候编码的工作比较多,慢慢的呢,可能诶编码的会少一些,慢慢的配置的。
11:25
工作会多一些,再慢慢以后呢,你牵扯到这个架构这方面的事情了,可能你做的这个约定的事情呢,就会比较多啊,这是这个这是也是谈的一个题外话啊,顺便这么一顺便这么一说,所以这个时候我想大家就明白啊,我们这个目录结构呢,它的这个用意啊是在哪里,那么说了这么半天呢,咱们就把这个目录结构呢,按照我们说的呢,给它建出来。
我来说两句