Java 项目模块化探索

模块化是Java9 的新特性模块系统:模块是一个包的容器,Java 9 最大的变化之一是引入了模块系统(Jigsaw 项目)。

在这里插入图片描述
在这里插入图片描述

module a1 {
    exports Car;
    requires kotlin.stdlib;
}
package Car;

public class Car {

    public String get() {

        System.out.println("这里是被调用模块");
        return "Car";
    }
}

module application {
    requires a1;

}
package com.fancv;

import Car.Car;

public class ApplicationStart {
    public static void main(String[] args) {
        System.out.println("启动应用");

        Car c = new Car();

        c.get();
    }
}

Java9中的Java源码已经分了模块,个人理解模块化是一种代码管理方法,或者工具。
可以更加灵活的打包时选择加载的Java源码。

另外jvm 虚拟机也支持模块化编译,两个不同的概念。

有人持有观点:Java模块化类似于maven,做项目模块的管理,个人表示认同。
看网上的面试题,很少对Java9模块化深入考察。
在maven 项目中尝试模块化,结构idea 工具直接忽略了模块的选择,可见 Java模块化和maven 基本上是竞争关系。
大家可以交流下今后Java模块化会取代maven吗 或者greadel

业界一般都使用maven管理 jar 包,项目依赖,没有经济动力进行模块化改造。

至于减少jar 体积,在云计算的时代 硬盘和内存的成本已经很低了。 大规模分布式项目会考虑,对于大部分项目,收益不大,另外Java模块化可以使用kotlin 混合编程,这点对于一些特定场景有使用价值,但kotlin 从业者基数太低,人员风险大。

以上是对Java9新特性模块化的探索思考。

参考资料:
1.https://blog.youkuaiyun.com/u010398771/article/details/100117986
2.https://blog.youkuaiyun.com/zebe1989/article/details/82692570?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-3.control
3.https://blog.youkuaiyun.com/qq_41962328/article/details/104541269
4.https://gitchat.blog.youkuaiyun.com/article/details/85178887?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control
5.https://blog.youkuaiyun.com/newbieLCQ/article/details/108889242

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值