国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

jar包的精細(xì)化運(yùn)營(yíng),Java模塊化簡(jiǎn)介

這篇具有很好參考價(jià)值的文章主要介紹了jar包的精細(xì)化運(yùn)營(yíng),Java模塊化簡(jiǎn)介。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


圖:模塊化手機(jī)概念

一、什么是Java模塊化

Java模塊化(module)是Java9及以后版本引入的新特性。

官方對(duì)模塊的定義為:一個(gè)被命名的,代碼和數(shù)據(jù)的自描述集合。( the module, which is a named, self-describing collection of code and data)。

早在Java7的時(shí)候就被提出,但由于其復(fù)雜性,不斷跳票,直到Java9才有,那么Java模塊化到底是什么,在實(shí)際開(kāi)發(fā)中又有什么用呢?

簡(jiǎn)單來(lái)說(shuō),就是把jar進(jìn)一步掰碎。

一個(gè)jar可以有多個(gè)module,一個(gè)module可以有多個(gè)package。
從代碼結(jié)構(gòu)上看,jar > module > package > class/interface。

那么怎么掰碎Jar包呢?

Java從自身做了一個(gè)典范,把JDK里面大部分Jar都掰成了一個(gè)個(gè)module

JDK1.8結(jié)構(gòu):

JDK17將其拆成一個(gè)一個(gè)jmod:

而且,官方提供了文檔對(duì)每一個(gè)模塊進(jìn)行了介紹:

模塊 描述
java.base 定義 Java SE 平臺(tái)的基礎(chǔ) API。
java.compiler 定義語(yǔ)言模型、注釋處理和 Java 編譯器 API。
java.datatransfer 定義用于在應(yīng)用程序之間和應(yīng)用程序內(nèi)傳輸數(shù)據(jù)的 API。
java.desktop 定義 AWT 和 Swing 用戶界面工具包,以及用于 輔助功能、音頻、成像、打印和 JavaBeans。
java.instrument 定義允許代理 檢測(cè)在 JVM 上運(yùn)行的程序。
java.logging 定義 Java 日志記錄 API。
java.management 定義 Java 管理擴(kuò)展 (JMX) API。
java.management.rmi 定義 Java 管理擴(kuò)展插件 (JMX) 遠(yuǎn)程 API 的?RMI 連接器。
java.naming 定義 Java 命名和目錄接口 (JNDI) API。
java.net.http 定義 HTTP 客戶端和 WebSocket API。
java.prefs 定義首選項(xiàng) API。
java.rmi 定義遠(yuǎn)程方法調(diào)用 (RMI) API。
java.scripting 定義腳本 API。
java.se 定義 Java SE 平臺(tái)的 API。
java.security.jgss 定義 IETF 通用安全服務(wù) API (GSS-API) 的 Java 綁定。
java.security.sasl 定義對(duì) IETF 簡(jiǎn)單身份驗(yàn)證和安全層的 Java 支持 (薩斯?fàn)枺?/td>
java.smartcardio 定義 Java 智能卡 I/O API。
java.sql 定義 JDBC API。
java.sql.rowset 定義 JDBC 行集 API。
java.transaction.xa 定義用于在 JDBC 中支持分布式事務(wù)的 API。
java.xml 定義 Java API for XML Processing (JAXP)、Streaming API for XML (StAX), XML 的簡(jiǎn)單 API (SAX) 和 W3C 文檔對(duì)象模型 (DOM) API。
java.xml.crypto 定義 XML 加密的 API。
jdk.accessibility 定義輔助技術(shù)實(shí)現(xiàn)者使用的 JDK 實(shí)用程序類。
jdk.attach 定義附加 API。
jdk.charset 提供字符集?不在(主要是雙字節(jié)和 IBM 字符集)。java.base
jdk.compiler 定義系統(tǒng) Java 編譯器及其命令行等效項(xiàng)?javac?的實(shí)現(xiàn)。
jdk.crypto.cryptoki 提供 SunPKCS11 安全提供程序的實(shí)現(xiàn)。
jdk.crypto.ec 提供 SunEC 安全提供程序的實(shí)現(xiàn)。
jdk.dynalink 定義用于動(dòng)態(tài)鏈接對(duì)象高級(jí)操作的 API。
jdk.editpad 提供?jdk.jshell?使用的編輯板服務(wù)的實(shí)現(xiàn)。
jdk.hotspot.agent 定義熱點(diǎn)功能配置代理的實(shí)現(xiàn)。
jdk.httpserver 定義特定于 JDK 的 HTTP 服務(wù)器 API。
jdk.jartool 定義用于操作 Java 歸檔 (JAR) 文件的工具, 包括?jar?和?jarsigner?工具。
jdk.javadoc 定義系統(tǒng)文檔工具及其命令行等效項(xiàng)?javadoc?的實(shí)現(xiàn)。
jdk.jcmd 定義用于診斷和排除 JVM 故障診斷的工具 如JCMD,JPS,JSTAT工具。
jdk.jconsole 定義 JMX 圖形工具,jconsole, 用于監(jiān)視和管理正在運(yùn)行的應(yīng)用程序。
jdk.jdeps 定義用于分析 Java 庫(kù)和程序中依賴關(guān)系的工具, 包括?JDEPS、JavaP?和?JDEPRSCAN?工具。
jdk.jdi 定義 Java 調(diào)試接口。
jdk.jdwp.agent 提供 Java 調(diào)試線路協(xié)議 (JDWP) 代理的實(shí)現(xiàn)。
jdk.jfr 定義 JDK 飛行記錄器的 API。
jdk.jlink 定義用于創(chuàng)建運(yùn)行時(shí)的?jlink?工具 圖像,用于創(chuàng)建和操作的?JMod?工具 JMOD文件,以及用于檢查的jimage工具 類和資源的特定于 JDK 實(shí)現(xiàn)的容器文件。
jdk.jshell 此模塊提供對(duì) Java 編程語(yǔ)言“片段”評(píng)估工具,例如 讀取-評(píng)估-打印循環(huán) (REPL),包括?jshell?工具。
jdk.jsobject 定義 JavaScript 對(duì)象的 API。
jdk.jstatd 定義用于啟動(dòng)守護(hù)程序的?jstatd?工具 用于遠(yuǎn)程監(jiān)控 JVM 統(tǒng)計(jì)信息的 JSTAT 工具。
jdk.localedata 提供美國(guó)區(qū)域設(shè)置以外的區(qū)域設(shè)置的區(qū)域設(shè)置數(shù)據(jù)。
jdk.management 為 JVM 定義特定于 JDK 的管理接口。
jdk.management.agent 定義 JMX 管理代理程序。
jdk.management.jfr 定義 JDK 飛行記錄器的管理接口。
jdk.naming.dns 提供 DNS Java 命名提供程序的實(shí)現(xiàn)。
jdk.naming.rmi 提供 RMI Java 命名提供程序的實(shí)現(xiàn)。
jdk.net 定義特定于 JDK 的網(wǎng)絡(luò) API。
jdk.pack 定義用于將 JAR 文件轉(zhuǎn)換為壓縮包200 文件的工具 并將打包文件轉(zhuǎn)換為 JAR 文件,包括 pack200 和?unpack200?工具。
jdk.rmic 定義用于生成存根的?rmic?編譯器和 對(duì)遠(yuǎn)程對(duì)象使用 Java 遠(yuǎn)程方法協(xié)議 (JRMP) 的框架。
jdk.scripting.nashorn 提供 Nashorn 腳本引擎的實(shí)現(xiàn)和 用 ECMAScript 5.1 編寫(xiě)的程序的運(yùn)行時(shí)環(huán)境。
jdk.sctp 為 SCTP 定義特定于 JDK 的 API。
jdk.security.auth 提供接口和各種身份驗(yàn)證模塊的實(shí)現(xiàn)。javax.security.auth.*
jdk.security.jgss 定義 GSS-API 的 JDK 擴(kuò)展和 SASL 的實(shí)現(xiàn) GSSAPI機(jī)制。
jdk.xml.dom 定義不屬于一部分的 W3C 文檔對(duì)象模型 (DOM) API 的子集 的 Java SE API。
jdk.zipfs 提供 zip 文件系統(tǒng)提供程序的實(shí)現(xiàn)。

以上是機(jī)器翻譯,原文:https://docs.oracle.com/en/java/javase/11/docs/api/index.html

二、模塊化有什么好處

好處就是將jar的功能精細(xì)化,可以按需使用。

猜測(cè)是為了解決Java項(xiàng)目尤其是JVM一直被詬病比較臃腫的問(wèn)題,怎么解決臃腫呢?砍就完了!

  • 進(jìn)一步規(guī)范Java的依賴

  • 按需使用,最小化加載,減少?zèng)_突,減小Java應(yīng)用大小

  • 可以對(duì)耦合性封裝性進(jìn)一步約束

  • 使調(diào)用權(quán)限管理更清晰,提高系統(tǒng)的安全性

精簡(jiǎn)JRE就是模塊化一個(gè)典型的應(yīng)用:
1、maven編譯,打包項(xiàng)目,打包依賴jar到libs
2、使用新版JDK自帶的jdeps找出依賴的模塊
3、使用新版JDK自帶的jlink制作自定義JRE

三、如何創(chuàng)建模塊

1、創(chuàng)建一個(gè)Java項(xiàng)目或者module

2、在代碼根路徑下創(chuàng)建文件module-info.java

定義模塊名稱,依賴的模塊,以及導(dǎo)出的模塊

3、編譯Java項(xiàng)目

在編譯后的目錄中可以看到module-info.class文件

4、創(chuàng)建jmod文件

使用jmod create命令:

命令格式:
jmod create --class-path module-info.class文件對(duì)應(yīng)的路徑 輸出的jmod文件名

四、如何啟動(dòng)可執(zhí)行模塊

上面咱們創(chuàng)建的模塊中是有Main入口的可執(zhí)行模塊,
那么能不能像java -jar一樣執(zhí)行這個(gè)模塊呢?

答案是肯定的:

使用java --module命令:

命令格式:
java --module-path 模塊文件所在路徑 模塊名稱/包名.main類名

執(zhí)行后,就可以把java程序給運(yùn)行起來(lái)啦:

五、既然這么好,我們常用的Spring有沒(méi)有支持?

看到這里,同學(xué)們可能發(fā)現(xiàn)了,這需要整個(gè)Java生態(tài)開(kāi)發(fā)者所有人按規(guī)范對(duì)自己的Jar進(jìn)行模塊化才能達(dá)到最優(yōu)效果,而且實(shí)際開(kāi)發(fā)過(guò)程中定義和管理自己的模塊及模塊之間的依賴關(guān)系是比較復(fù)雜的事情。

這里有一個(gè)關(guān)于Java模塊化算不算復(fù)雜以及有沒(méi)有必要的知乎問(wèn)題,供大家參考:
https://www.zhihu.com/question/610866431?utm_id=0

那么我們常用的Spring有沒(méi)有被模塊化打動(dòng),也按規(guī)范進(jìn)行模塊化了呢?
至少到Spring5還沒(méi)有,但是這里有一些答案:

1:Declare Spring modules with JDK 9 module metadata

SpringFramework官方的回答:
https://github.com/spring-projects/spring-framework/issues/18079

機(jī)器翻譯:JDK 9的Jigsaw計(jì)劃旨在允許將模塊元數(shù)據(jù)(module-info.java)添加到框架和庫(kù)jar中,同時(shí)保持它們與JDK 8的兼容性。讓我們對(duì)Spring Framework 5.0的模塊盡可能地這樣做。然而,我們可能無(wú)法以這種方式表達(dá)我們的可選依賴安排,在這種情況下,我們可能不得不采用“自動(dòng)模塊”方法來(lái)實(shí)現(xiàn)#18289中更溫和的目的。

2:Any plans for Java 9 Jigsaw (module) of Spring projects?

https://stackoverflow.com/questions/43685081/any-plans-for-java-9-jigsaw-module-of-spring-projects

作者:京東科技 周波

來(lái)源:京東云開(kāi)發(fā)者社區(qū) 轉(zhuǎn)載請(qǐng)注明來(lái)源文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-741716.html

到了這里,關(guān)于jar包的精細(xì)化運(yùn)營(yíng),Java模塊化簡(jiǎn)介的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 利用甘特圖實(shí)現(xiàn)精細(xì)化項(xiàng)目管控

    利用甘特圖實(shí)現(xiàn)精細(xì)化項(xiàng)目管控

    在項(xiàng)目管理中,通過(guò)精細(xì)化管控,項(xiàng)目經(jīng)理能夠有效規(guī)劃、監(jiān)督和協(xié)調(diào)各項(xiàng)任務(wù),從而最大限度控制風(fēng)險(xiǎn),優(yōu)化資源配置,并確保按時(shí)、按質(zhì)、按量完成項(xiàng)目目標(biāo)。而在眾多項(xiàng)目管理工具中,甘特圖無(wú)疑是實(shí)現(xiàn)精細(xì)化項(xiàng)目管控的利器。zz-plan 是一個(gè)非常好用的在線甘特圖制作工具,一

    2024年04月14日
    瀏覽(27)
  • 如何通過(guò)CRM銷(xiāo)售系統(tǒng)精細(xì)化管理客戶?

    如何通過(guò)CRM銷(xiāo)售系統(tǒng)精細(xì)化管理客戶?

    ? 粗放式的客戶管理會(huì)使企業(yè)失去許多潛在客戶,這是許多管理者頭疼的問(wèn)題。與之對(duì)應(yīng)的精細(xì)化管理,關(guān)鍵在于提升品質(zhì)、降低成本、優(yōu)化流程, 接下來(lái)我們就來(lái)聊一聊,如何通過(guò)CRM銷(xiāo)售管理系統(tǒng)精細(xì)化管理客戶。 一、客戶數(shù)據(jù)庫(kù)管理 在銷(xiāo)售管理系統(tǒng)的幫助下,員工可以

    2024年02月08日
    瀏覽(25)
  • 財(cái)務(wù)共享中心搭建以后,如何進(jìn)行精細(xì)化管理?

    財(cái)務(wù)共享中心搭建以后,如何進(jìn)行精細(xì)化管理?

    財(cái)務(wù)共享中心通過(guò)統(tǒng)一的財(cái)務(wù)流程、系統(tǒng)和人員配置實(shí)現(xiàn)了財(cái)務(wù)業(yè)務(wù)的標(biāo)準(zhǔn)化和規(guī)范化,為企業(yè)的財(cái)務(wù)管理提供了很大的便捷性和效率性,目前許多大型企業(yè)已紛紛開(kāi)始搭建自己的財(cái)務(wù)共享中心。 但企業(yè)在搭建財(cái)務(wù)共享中心之后,往往會(huì)在運(yùn)行初期遇上業(yè)務(wù)和財(cái)務(wù)脫節(jié)、財(cái)務(wù)

    2024年02月07日
    瀏覽(26)
  • 金融客戶敏感信息的“精細(xì)化管控”新范式

    金融客戶敏感信息的“精細(xì)化管控”新范式

    目? ? 錄 ? 01 ?客戶信息保護(hù)三箭齊發(fā),金融IT亟需把握四個(gè)原則? 02? 制度制約阻礙信息保護(hù)的精細(xì)化管控 ??????? 03 ? 敏感信息精細(xì)化管控范式的6個(gè)關(guān)鍵設(shè)計(jì)? 04 ? 分階段實(shí)施,形成敏感信息管控的長(zhǎng)效運(yùn)營(yíng)的機(jī)制 05 ? 未來(lái),新挑戰(zhàn)與新機(jī)遇并存 01? 加強(qiáng)客戶信

    2024年02月11日
    瀏覽(23)
  • 傳感云智慧公廁綜合解決方案,實(shí)現(xiàn)公廁精細(xì)化管理

    傳感云智慧公廁綜合解決方案,實(shí)現(xiàn)公廁精細(xì)化管理

    隨著國(guó)家“公廁革命”建設(shè)工作的持續(xù)推動(dòng)與科技創(chuàng)新技術(shù)的不斷進(jìn)步,人們對(duì)“方便”與“衛(wèi)生”的要求越來(lái)越高,智慧公廁已然成為智慧城市建設(shè)規(guī)范下的公共廁所新形態(tài),不僅可以解決傳統(tǒng)公廁的臟亂差、異味和管理難題,同時(shí)可以為用戶提供舒適的如廁體驗(yàn)。 ? 那么

    2024年02月05日
    瀏覽(22)
  • 城市精細(xì)化治理過(guò)程中的智能圖像識(shí)別如何更精準(zhǔn)、更智能?

    城市精細(xì)化治理過(guò)程中的智能圖像識(shí)別如何更精準(zhǔn)、更智能?

    城市精細(xì)化治理任務(wù)旨在通過(guò)人工智能(AI)技術(shù)對(duì)城市治理過(guò)程中出現(xiàn)的問(wèn)題事件(例如道路破損、垃圾亂放、占道經(jīng)營(yíng)等)進(jìn)行智能圖像識(shí)別,為城市治理人員針對(duì)性開(kāi)展工作提供技術(shù)支持。 · 數(shù)據(jù)標(biāo)注通常以事件標(biāo)簽標(biāo)注+特定目標(biāo)物矩形框標(biāo)注形式呈現(xiàn)。 · 相關(guān)算法

    2023年04月08日
    瀏覽(25)
  • 無(wú)人機(jī)精細(xì)化巡檢方案制定:提高效率與準(zhǔn)確性的關(guān)鍵

    無(wú)人機(jī)精細(xì)化巡檢方案制定:提高效率與準(zhǔn)確性的關(guān)鍵

    1. 精細(xì)化巡檢的需求背景 效率與安全并重:傳統(tǒng)的人工巡檢面臨時(shí)間消耗大、安全風(fēng)險(xiǎn)高等問(wèn)題。而無(wú)人機(jī)巡檢可以在較短時(shí)間內(nèi)完成大面積的檢查工作,并避免人員直接面對(duì)潛在的高風(fēng)險(xiǎn)環(huán)境。 細(xì)致與全面:隨著技術(shù)的進(jìn)步,越來(lái)越多的組織意識(shí)到精細(xì)化巡檢的必要性。

    2024年02月11日
    瀏覽(29)
  • k8s通過(guò)sa和自建角色實(shí)現(xiàn)權(quán)限精細(xì)化分配

    角色role-sa 具有的權(quán)限僅僅是namespace planck內(nèi)的所有pod的查看權(quán)限,以及deployment的查看權(quán)限,無(wú)權(quán)刪除修改這些資源 為什么要授權(quán)是因?yàn)閟a內(nèi)的secrets里的token只有在dashboard內(nèi)使用,而上面的角色和角色綁定都是dev這個(gè)namespace內(nèi)的,這樣綁定后,拿到token才可以登錄到dashboard的首

    2024年02月13日
    瀏覽(27)
  • k8s通過(guò)系統(tǒng)配置文件kubeconfig文件實(shí)現(xiàn)權(quán)限的精細(xì)化分配

    k8s的apiserver地址為:https://xxx:6443 token=“xxx” cfssl 安裝 cfssljson 安裝 生產(chǎn)證書(shū) 1.設(shè)置集群參數(shù) config文件引入集群ca證書(shū),這里的set-cluster 可以任意設(shè)置,想叫什么集群名字都可以,我這里定義為mykubernetes,kubeconfig文件名稱也隨意定義,我這里定義為test.kubeconfig,此命令執(zhí)行后

    2024年02月13日
    瀏覽(25)
  • java智慧工地云平臺(tái)源碼,以物聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)技術(shù)為基礎(chǔ),結(jié)合大數(shù)據(jù)、云計(jì)算等,實(shí)現(xiàn)工程管理綠色化、數(shù)字化、精細(xì)化、智能化的效果

    java智慧工地云平臺(tái)源碼,以物聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)技術(shù)為基礎(chǔ),結(jié)合大數(shù)據(jù)、云計(jì)算等,實(shí)現(xiàn)工程管理綠色化、數(shù)字化、精細(xì)化、智能化的效果

    智慧工地將更多人工智能、傳感技術(shù)、虛擬現(xiàn)實(shí)等高科技技術(shù)植入到建筑、機(jī)械、人員穿戴設(shè)施、場(chǎng)地進(jìn)出關(guān)口等各類物體中,圍繞人、機(jī)、料、法、環(huán)等各方面關(guān)鍵因素,徹底改變傳統(tǒng)建筑施工現(xiàn)場(chǎng)參建各方現(xiàn)場(chǎng)管理的交互方式、工作方式和管理模式,智慧工地主要以物聯(lián)

    2024年02月08日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包