关于Java9的模块化文档真的很少,网上也没有搜到有推荐使用Java9的Module开发的。
但是从JDK9开始其构造和JDK8有了本质的区别,JDK8的时候其结构是按照package来区分,但是JDK9采用的是Module。这些都不是本文要说的,以后再单独列篇文章说这块。
这里给出一个简单的Java9 module+SpingBoot+Maven的Demo仅供大家参考,有不足的地方还请指正。
环境
- JAVA9+
- Spring Boot2.0+
- 3.5(貌似3.2+就可以)
我用的是Java9+SpringBoot2.0+Maven3.5
首先来看下目录结构
我这里建了三个Module,注意目录结构的特点,每个子Module的java同级目录都有一个module-info.java文件。
关于module-info.java的名称和位置建议大家还是别乱动的好。
SpringFirst是项目的入口,对外的API都在这(目前只给出一个简单的获取用户信息的接口),SpringSecond是Service相关,SpringThird只有一个User的实体类。这里为了更好的说明Java9 Module的一些特性特意分成这三块。
Spring相关的引用我都放到了最外层的pom中,大家可以自己看下代码,后边我会给出Git地址。
先来看SpringFirst的pom
<dependencies>
<depen