groupid-> org.apache.maven.plugins
artifactid->maven-compiler-plugin
version: 3.7.0
configuration->
source: 9 #源代码 是jdk9 语言级别
target: 9 #编译后的class是 jdk9
fork: true #指定compiler在编译源代码时,用jdk默认的jdk版本来编译
模块传递性的写法
requires 的 作 用
export 的作用
模块依赖和包导出
是用来声明哪些包可以被其他模块所访问,只有被导出的包才能被其他模块所访问,默认情况下没有包被导出。
exports导出包,导出包中public、protected类型的成员,可以被其他模块所访问;
exports to受限导出,指定模块名,只有指定的模块可以访问。
requires
exports
模块依赖和包导出
模块声明文件
模块的定义
模块系统的必要性
模块的定义
《Java9之模块系统》
1、Java9开发环境准备
(JDK9安装与配置、Apache Maven安装与配置、Intelli IDEA和Eclipse的安装与配置)
2、Java9模块系统基本概念
(模块的包导出和依赖+模块之间的传递依赖+服务提供与使用)
3、基于实例的模块系统开发实战()
基于实例的模块系统开发实战(1)
(如何创建模块+如何导出模块中包含的包+如何声明对其他模块的依赖关系)
基于实例的模块系统开发实战(2)
(使用依赖传递+如何提供和使用服务+如何使用jlink创建自定义运行时镜像)
save方法同时支持创建、更新两个功能
从分层角度来说,服务层一般需要定义专门的异常类
项目的根目录创建module-info.java
这个 反射用的非常棒
这一张的通用增删改查非常好。有时间多看看
模块依赖和包导出
是用来声明哪些包可以被其他模块所访问,只有被导出的包才能被其他模块所访问,默认情况下没有包被导出。
exports导出包,导出包中public、protected类型的成员,可以被其他模块所访问;
exports to受限导出,指定模块名,只有指定的模块可以访问。
requires
声明所依赖的包的名称
不允许出现重复模块
可以声明不存在模块,编译器给出警告
使用transitive关键字表示当前依赖可被传递,即模块b所依赖的c模块都可以被其他模块依赖模块b的模块所读取
requires关键字
exports关键字
java9模块依赖和导出关键字