Java9

1.对Java9的初步了解

  1. Java9-jigsaw拼图

相当于Java8-lambda表达式。

2.      原本整个程序就是一个整体。

         a)      在Java8及更老的版本当中,集合,Scanner等,都放在了rt.jar包。

                   大小:60.6 MB

  1. 而在Java9当中,这些东西都不在一个rt.jar包当中了,而是设置在了Java.base.jmod

大小为15.9MB。是因为其余的45MB都已经设置在了别模块了!

  1. 模块化可以解决哪些问题?

本来没有的选,但是现在有的选了,只用一部分功能

a)       将一个整应用拆分成为4个模块,我们可以选择用某个功能。

b)       而这个模块运用方面:可以选择设置公开内容,可以设置私有内容;即权限控制。

4.      java 8、java9的区别比较

         在一个jar包当中,都是可以随意访问。比如public,但是虽然为运用提供了便利,但是确是把运用条件给随意化了,jar包可以被任意访问。

         但是在Java9可以运用模块化,对模快施加更加精确地权限控制。

2.Module-info.java

1.·一个全新的描述文件,他不是类,也不是interface,此文件只是比package更大的组织配置文件。

2.·它在Java9中,加了一个基本模快配置文件,但它也就是一个配置文件。

exports 对外暴露的包路径(模块外可见)

requires 需要依赖的模块名称(也就是jar包依赖)

3      Java 9中的模块非常多,但是只有一个模块不需要设置,就可以被默认实现访问。

3.将IDEA项目改造为java模快

  1. 如何改造成java模快的文件呢?
    1.  New  project 然后删除src文件
    2. 创建一个moudle文件

然后然后这并不是java9中的模快,它只是idea工具中的文件夹而已。

    1. 接下类继续下一步操作才能把一个文件编程一个java9当中的模块:

    1. 设置模块中的依赖和权限

在模块化one中,首先类前堤是publi,然后想要出包,被别的模块访问,可以在util文件中设置一下exports.

    1. 在two的模块中,想要访问one的类方法,虽然已经在utilCan文件中设置了exports,但是想要访问one,还得关联一下,找到demo01,(因为demo02没有设置exports,所以在two模块中自然无法访问)如下操作:

在这个过程中,就算你已经在two模块中,导入了包,愣写也是无法用到one模块中的东西,因为没有exports。

4.模块的服务提供与服务消费

面向接口编程

就是CDE三个模块随便变动,直接影响了B模块,但是影响不了A。以下是对上图的实现。

  1. 设置服务的提供者与消费者

现在one模块中创建一个API提供者,创建了一个抽象方法,在创建一个impl实现类,

并且对外实现exports API 提供者。

在two模块中实现uses MyService;

  1. 模块间使用接口服务

上述中,已经创建好了,API服务提供者,然后怎么让服务消费者运用?

需要一些API

  1. 需要一个加载器:就能拿到MyService,也能拿到实现类
  2.  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值