Java 9 引入的这个模块,它对于 spring boot web 开发是不是没啥影响?

99 天前
 BraveXaiver
有啥中文文章比较好地介绍了这个机制吗?我简单地看了看, 感觉像是在开发多模块项目时才用得上的?如果已经打包成 jar 或者 war 去部署,或者通过 maven 引入别的依赖,基本上是用不到这个的?

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

对于小项目,桌面开发,上模块还是不错的
chenssy
98 天前
个人认为有如下几个作用吧:
1. 瘦身
2. 安全。能够更好地控制你 module 的可见性。
3. 比较适用于大型项目。

目前这个模块化其实用得还是比较少。我以前写过一篇文章: https://www.skjava.com/series/article/2044128092 。希望对你有帮助
dasbn
98 天前
主要是给库用吧,比如引用了内部的 sun 包,现在升级都要去掉了。对使用的人应该没啥影响,毕竟对大型项目已经有 osgi , 对于 spring 也有 modulith
SkyLine7
78 天前
spring 基本不用 java9 那个模块化东西
YepTen
77 天前
@chenssy 老哥 你网站打不开啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1012919

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX