1
ExplodingFKL 332 天前 1
由于 spring boot 运行机制的问题,想用 java module 要写很多 module-info.java , 没必要 , 也不差这点空间
|
3
Narcissu5 332 天前
java 这个模块化真的是,推出之前炒得不可开交,甚至影响新版本的推出时间。推出之后无声无息。
这东西最大的意义其实是桌面应用自带 JVM 的安装包可以大幅度瘦身,不过等他们吵完架,桌面应用的时代基本已经过去了。 服务器应用直接无视就好了 |
4
echo1937 332 天前
1. 瘦身,比如体积超大的 rt.jar 拆成了几十个.jmod 模块,不会因为只需要一个 java.xml 就把整个 jar 都导入进来了
2. 精细化权限,只有被 exports 的包才能被人访问,哪怕你是 public 的 更具体的看 2#楼,以上这些对大型项目、中间件、桌面端影响更大,对普通的 curd 仔影响不大。 |
5
Aresxue 332 天前 1
结论是没有。
好处之一有点类似我们自己工程中的多 module 结构一样,看源码的时候可以更清晰,引入依赖可以按需引入而不是全量引入,很多框架以前为了这个事情自己把使用的类从 jdk 里面 copy 出来( copy 一个类往往还没用还要 copy 依赖的类想想心累不),有了模块化以后就不用再干这种脏活了,当然上面的事情和 web 业务开发基本没啥关系,主要是框架和中间件影响比较大,但其实这一举措主要是 java 还不想放弃桌面端,java 做桌面端以前最被人诟病的就是要带着 jre 一起发布整个包大到离谱,有了模块化用户就可以自己裁剪出需要的 jre 能显著地降低包的体积有利于分发; 第二点就是精细化权限,我可太喜欢这个东西了,甚至一度想把我司的屎山从 jdk8 迁移到 17 ,虽然最后没有成型,比较典型的一个场景是框架中 A module 的类只想给自己框架内部的其它 module 使用,但是很难做到这一点,设为 default 则要求其它模块使用它的类的包名与其一致,设为 public 则存在被业务滥用的风险,现在总归存在一种机制能解决这个事情了。 |
6
dif 332 天前
这玩意总觉得有些烂尾,实际工作中并不会用~~
|
7
yidinghe 331 天前
业界并没有广泛使用模块化的开发方式,因为它可能破坏项目对以前的库的使用方式,即便有加参数或其他手段来绕过,维护起来也很复杂。
|
8
ikas 331 天前
对企业开发,或者说服务端目前影响有限,大家还是各用各的,比如 jboss 的模块,osgi,甚至 spring 也搞了自己的模块化
对于小项目,桌面开发,上模块还是不错的 |
9
chenssy 331 天前 1
个人认为有如下几个作用吧:
1. 瘦身 2. 安全。能够更好地控制你 module 的可见性。 3. 比较适用于大型项目。 目前这个模块化其实用得还是比较少。我以前写过一篇文章: https://www.skjava.com/series/article/2044128092 。希望对你有帮助 |
10
dasbn 331 天前
主要是给库用吧,比如引用了内部的 sun 包,现在升级都要去掉了。对使用的人应该没啥影响,毕竟对大型项目已经有 osgi , 对于 spring 也有 modulith
|
11
SkyLine7 312 天前
spring 基本不用 java9 那个模块化东西
|
13
woldfoll 127 天前
我们公司的 Spring Boot 项目在推行使用。
|