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.csdn.net/u010398771/article/details/100117986
2.https://blog.csdn.net/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.csdn.net/qq_41962328/article/details/104541269
4.https://gitchat.blog.csdn.net/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.csdn.net/newbieLCQ/article/details/108889242

猜你喜欢

转载自blog.csdn.net/keep_learn/article/details/112189774
今日推荐