00:00
啊,那我们在说完刚才这个描述以后呢,下边来通过代码呢去体现一下咱们刚才所谓的模块化啊,口说无凭嘛,嗯,那这里的话呢,我们写这个代码的话呢,我用的是idea这个eclipse呢,大家应该开发过Java程序的肯定都知道eclipse啊呃,Idea的话呢,现在属于后起之秀啊,在这个市场的应用角度上来讲呢,现在呃直接呢冲击eclips啊,应该说呢,在可以预见的未来呢,Idea的这个呃,开发Java程序的占比呢,应该是会超过eclip啊诶我做大胆的这样的一个预测,那idea的话呢,呃,之前我装的是2017的一月份的版本,然后呢,呃,在它上面使用JAVA9发现还会有一些小的问题啊。呃,那这个小问题呢,还不太好排,其实呢,就是呃,软件本身在JAVA9的知识上呢,还会有一些不兼容的地方,所以呢,我就在idea的官网上下载了2017的三月份的一个版本,这是最新的一个版本啊,呃,大家的话呢,就没有必要去这个官网下载了。
01:01
诶,我给大家发的这个资料里边,呃,有这个IDEA2017的第三版啊,这呢稍微给大家啰嗦几句啊嗯,下载安装idea的这我们叫旗舰版啊U,那它还有这个叫呃community啊,叫社区版,社区版的话呢,是免费的,只能够开发张va SE的项目,那U的话呢,叫旗舰版,可以开发我们的Java EE的项目啊,那很显然它呢是收费的,那我们呢,能做的事就是给它破解激活,这儿呢,我提供了这个破解相关的这个server,或者是呢,你使用激活码也行。但是有可能在一七年的三月份的这个版本上呢,使用第二种这种方式呢,就不好使了,大家呢,需要去嗯这个网站上啊,去下载更新这个注册码啊,这个大家可以去试试,那如果你要是不成功的话呢,我这儿呢,又提供了一个反向代理的工具啊,你把它运用起来以后,诶,然后呢,就输入这个地址啊网址就可以进来了啊。好,这是我说的这个问题,嗯,然后的话呢,关于这个2017版如何去安装,这呢,我提供了一个安装指南,大家按照这个说明一步一步的去,哎这个操作就OK了啊,包括一些嗯,必要的设置的一个添加啊这呢也有好这呢就不啰嗦了,然后的话呢,我这啊就启动了一个啊,当然我这呢去新建一个啊我们说明一下这个问题,Project这里的话呢,我创建两个project啊,一个product呢是基于1.9的,诶我们想演示一下这个1.9的这个新特性,OK next。
02:36
好,Next好,在这个位置呢,我起个名字哈,叫Java。JAVA9的一个test。一般呢,咱们这个工程的习惯上都是小写的啊,OK行,然后呢,做一个finish。啊,这我就替换一下啊,这次window了,呃,这是一个,然后呢,我再去创建一个project。啊,这个呢,我就基于1.8的了。OK,然后那。
03:01
Next,哎,这个呢,我叫JAVA8的一个test。嗯,有的同学呢,如果像刚才一样啊,就是你看不到说,诶我这怎么没有这个,呃,正二八这样一个选项呢,那你呢,就在自己的电脑上再去装一下JDK8啊,这就不多说了啊是这个情况。行,然后呢,Finish啊,这我们就new window。好,这呢我就起了两个这个idea啊,两个idea呢,其中一个呢,我们来演示在JT8当中一些语法的规则,然后另外一个呢,在九当中,我们去演示酒的一些新特性,那对于模块化的话呢,它没有之前的储备了,所以我们这里呢,就直接在我们这个呃,Java酒基于JDK酒的这样一个环境当中进行测试就行,好这呢是我们的工程,然后呢,我点右键new呢,去创建相应的module,就是我们所谓的模块。啊,模块呢,也都是基于这个JDK9的啊好next啊起个名字这呢,我就起名叫JAVA9的一个DEMO。
04:04
嗯,JAVA9的一个DEMO。这是一个,然后我们再来创建一个module。哎,JAVA9的一个test,好,不妨我就这样来起名了。哎,这呢already exist啊,这个跟我们这里的这个名字是一样的啊,哎,那我就称称它叫Java test这样哈,好finish,好,这呢是我创建的两个module,这两个module创建完以后啊,那我们呢,进行一个相关的一个演示哈,举这个例子,比如说我们这呢,做一个储备工作啊,在DEMO的src下,我去先创建一个包。哎,这个包呢,我起名康点在硅谷。啊,第二这个我们写项目的时候呢,像扎B这些类呢,我们通常都给它,呃声明在我们这个B包下啊,在这里边我去创建一个class啊,我这就简单一点啊,就做person类好,Personal类里边我提供必要的属性,Private词针形的name啊,Private型的age,好哎,我去提供它必要的一些构造器和方法,首先呢构造器先来一个空参构造器。
05:13
呃,然后呢,代餐的构造器。哎,接着呢,提供它get set方法。哎,两个都选中,哎,接着呢,我们再提供一个必要的,哎,投资人方法。OK。行,那这儿呢,我们就把这个类呢写好了,写好以后呢,诶大家看哈,我这个类呢,是一个public的,他在我们当前这个module下进行调用,一点问题都没有啊,但是现在我们希望呢,在另外一个模块啊,这个Java test这个模块下呢,进行一个调用演示。啊,怎么做呢?来大家注意看啊,在H2C下呢,我们点右键呢,先去创建一个这个package啊这呢我们做一个命名。诶,Com点艾特硅谷点Java,好,那在这个下面呢,我们去创建一个具体的Java类,哎,不妨我就称作叫module的一个test。
06:07
啊,这呢,我们说明一下啊。哎,测试。哎,这个JAVA9的。模块化。啊,特性。好,那在这里边的话呢,我就写一个呃位方法了。啊可以,这我就进来了,那这里边呢,大家看啊,我如果这个时候呢,想去创建一个person的对象啊,大家也知道了,我们有一个空餐过造器,有个代餐的,不妨我就用代餐的了啊,比如说叫汤姆,然后呢12岁。那这时候呢,就提示我这个person呢,我是看不到的啊,哎,我们选中这个person out enter一下啊,这块就提示这个问题了是吧?哎,那在这些呢,下边叫create了哈,上边有一个叫ADD dependency on module java9的DEMO。
07:03
啊,就相当于我们需要去添加一下诶JAVA9DEMO这样的一个模块才能够去调用啊,这我就不点了啊,我们直接在这块去说,大家看怎么去做这个事,好大家注意在我们Java test这个src下呢,点右键你一个叫呃,Module infer的Java文件。啊,这是一个了,然后呢,在我们这个JAVA9DEMO它的src下呢,也得点右键创建一个叫诶module iner。好这样好,完事以后的话呢,我们要想在Java test这个模块下使用JAVA9DEMO下的。Person这样个类,那我们就需要在Java酒DEMO,你这个model info里边写什么呢?我们叫export啊,就是哎输出是吧?啊或者你叫出口,这是我们这个在经济学上叫出口了哈,在这呢,我们相当于叫导出,导出谁呢?导出我们相应的包叫com.at特硅谷点B。
08:05
啊,注意呢,这个导出的是包啊,所以我这写一个注释啊,装一装啊,咱们写个英文的叫package we export。哎,明显我们感觉写上英文的话呢,突然感觉自己很高大上是吧,哎,就是我们需要导出的包,注意啊,这时候是包。那我们明确指明说导出的是这个bin包了,那就意味着B包下的类呢,我们就可以在另外一个mole相应的这个类下边呢进行调用了啊,但是呢,还不行,你看这时候还报错啊,我们需要在我们这个里边module iner中呢指明我想导入,所以呢,这我们有个叫request,注意这时候呢,不是叫import了。叫requests request是什么呢?写上我们的module的名字,那也就是说呢,JAVA9DEMO。注意啊,为什么我强调这个事儿呢,这写的是DEMO啊,呃呃,不是这写的是这个module,而我们上一个这块呢,写的它是这个包名。
09:09
啊,是这样的情况啊,然后呢,回过来以后,在这个person这个位置上,我们al enter1下来点一下第一项。啊,加载了好,这个时候呢,我们这也就不报错了啊行,那加载完成以后,这个时候呢,我们看到这个代码呢,就没有错误了,我们做一个简单的输出啊s out。来,我们点右键做一个执行。啊,这个首次加载的话呢,会稍微慢一点。好,大家看这时候呢,我们这个person呢,就诶这个运行成功了,就可以去调用了,哎这个应该比较简单啊,那我们来演示一个不行的,什么意思呢?大家看我在SFC下呢,我再去新建一个包,这个包呢,我叫做com点。啊,艾特硅谷啊点entity。
10:04
回车,然后在这个entity下呢,我去创建一个class,哎,这里的我叫做user行,然后呢,Private,同样的,我们去提供它必要的几个属性啊,Private in型的age啊,接着呢,提供构造器。嗯,再提供一个代餐的构造器。啊,这呢,我用的都是快捷键了啊al shift s接着呢,提供这个get set方法。那有的同学呢,你的这个快捷键,哎,你说诶我怎么用auto shift s出不来呢?嗯,那原因呢,是我特意的呢,配了一下这个idea的这个快捷键哈,呃,使得的话呢,我这个快捷键跟Eli这快捷键呢,保持高度一致,呃,大家如果想配置的话呢,呃,那这样回头我我我再放到这个资料里边啊哎放到这块,然后大家呢,到时候去做一个添加就OK了。好,那接着回来说这呢,创建好我们这个user以后,注意我在这个module当中,我特意呢不将这个NT呢给它export,那接下来我们在这个结构当中,Mole不用改了,因为这就是本身就是另外一个Mo了啊,所以这不用动,然后在这呢,我们看看能否去调用user。
11:18
哎,咱们user呢,因为也有一个空仓的啊,就这样写的,哎,你看此时呢,他就报错了,说cannot啊resolve,就这时候呢,我们是没有办法去这个调用我们的这个user的out enter一下,哎,他提到的全是create。啊,因为呢,你没有暴露,所以呢,我这儿呢就调用不了,那那这儿呢,咱们就体现了这个模块化的一个显著特点啊,那在我们的这个model infer当中,我们需要对外暴露哪些包,我就能给他export,那默认情况下呢,它就不是对外暴露的,达到了一个隐藏的目的啊,体现了这个安全性。好,那这呢,咱们就得把它呢注释掉。哎,这是一个事情啊,那这呢,咱们演示的是咱们自己写这个model当中调用另外的model,那咱们呢,还可以去举例子啊,比如说呢,呃,在我们这个日志这个使用方面,咱们可以用到一个呃类啊,叫做log。
12:12
在这呢,咱们去做一个调用啊,这个log.get一个log啊这呢咱们写一个,比如我就写个叫硅谷了。这就行了啊,然后这个logo的话呢,我们看到它呢,此时也报错al enter一下,那需要我们去添加这样的一个model的依赖啊点击。然后呢,大家看我们这个呃,Model的这个iner信息当中啊,就有了我们这样的一个要求啊,就是说你需要哪些模块呢,我们就导哪些模块,这个呢,就使得咱们的这个项目的话呢,就比较轻量级了啊,这个log怎么去用这呢?就呃简单来演示一下啊log点诶我们呢,做一个信息的一个输出啊,比如写一个啊A是吧,咱们在测次测试的时候呢,可以呢,去打相关的这些日志的信息,看它的输出情况啊。
13:05
哎,这呢只是只是执行一下,其实呢,咱们也没有必要非得要执行,呃只要呢它这个呃什么时候能调,这不报编译错误了,说明我们就可以呢使用它了啊好这呢,就打印出这个日志信息了,这不多说了,那同时的话呢,在比如说大家原来在这个eclipe当中,咱们呢,使用单元测试的话呢,需要导入这个解unit是吧,哎,我这写个TEST1。那上面呢,我们这个圈test呢,它就来自于unit out enter一下,哎,我们at一下他。啊OK,然后再接着的话呢,Out enter一下,将它呢,添加到我们这个model因数当中。诶,那大家再去看我们这个model in这呢,就有我们的这个ne。啊,所以说呢,这里边我们回头呢,这个工程如果你呃给他呢,部署起来以后,他再去加载到这个通过Java虚拟机呃进行加载的时候呢,其实呢,是加载速度要更快一些,需要哪些model,我们呢就导入哪些model就OK了。
14:01
行这呢,就是咱们的一个模块化的一个这个这个调用了啊,相应的这个代码的话呢,我在给大家的这个文档当中写的比较详细了,大家呢可以看一下。啊,那如果呢,你需要关注JAVA9这个模块化,呃,这个更详细的内容,那建议大家呢,你可以看我这儿啊列举的一个超链接对应的有一本书。啊,这个加载的这个速度稍微慢一些哈,那这个书呢,写的那就是比较详细了,当然了,大家一般情况下现在还不用过多的去研究这个问题。嗯,因为呢,咱们说了扎完酒之后,这个版本更新迭代速度会比较快啊,那这个关于模块化的话呢,还会有很多的工作呢,需要去做啊,只是说呢,你要有兴趣,大家呢,可以把这个看一看。那当然了,你也可以,怎么着呢,如果你有兴趣把它呢都翻译成中文,嗯,再做一些自己思想的一些改进,加一些这个代码,你可以呢,出一本中文的关于模块化的书,那应该呢是比较畅销的。
15:01
好,这呢,我们就先把这个呢关一下。
我来说两句