在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>java源碼下載>

新的Java 9功能介紹

大小:0.3 MB 人氣: 2017-09-27 需要積分:2

  第9版給Java定義模塊的可能性。一個模塊是一個命名的,自描述的程序組件,由一個或多個包(和數(shù)據(jù))組成。模塊可以定義如清單1所示。

  模塊 de module .a { exports de。module .a.paket.x;}模塊 de module .b { exports de。module .a.paket.y; 出口德 module .a.paket.z;}模塊 de module .c { requires de。模塊 .a 需要 de 模塊 .b}

  該接口定義指示模塊向外部世界提供哪些包(使用關鍵字exports)以及外部需要哪些模塊(需要關鍵字)。注意:這不是前一句中的錯字; 一個模塊導出包,但需要模塊。這可能會令人困惑,因為軟件包和模塊通常具有相同或非常相似的名稱。未明確導出的模塊的所有軟件包只能在模塊中使用。如果您嘗試從模塊外部訪問它們,則會發(fā)生編譯器錯誤。

  使用模塊化JAR作為模塊

  現(xiàn)在我們已經(jīng)看到了如何聲明一個模塊,讓我們回答另一個問題:我們在哪里編寫模塊聲明?該約定表示您在名為module-info.java的源代碼文件中聲明它,并將其放在模塊的文件層次結構的根目錄下。然后,編譯器將其轉(zhuǎn)換為文件module-info.class。名稱“module-info”包含連字符,因為它是一個無效的類名。這樣,現(xiàn)有的代碼就不會被損壞。然后將Java文件稱為模塊聲明和類文件模塊描述符。

  如果您以這種方式聲明了一個模塊,則可以從中創(chuàng)建一個模塊化的JAR。它的結構就像一個常規(guī)的JAR文件,區(qū)別在于它的根目錄下有一個module-info.class文件。這樣的模塊化JAR可以用作模塊。由于向下兼容的原因,它也可以用作經(jīng)典的JAR文件和類路徑。那么module-info.class就被忽略了。說到類路徑:通過引入模塊概念,它是由一個替代ModulePath進行。在模塊路徑中,您可以指定在文件系統(tǒng)中找到特定模塊的位置。

  在過去,有一個類路徑,一堆JAR無序,可以不可控制地使用對方。此外,JAR內(nèi)的所有內(nèi)容都可以訪問。現(xiàn)在我們可以使用模塊機制來明確定義哪個模塊應該使用哪些模塊。這使得可以使用相同庫并行的多個版本。例如,模塊A可以使用版本1中的庫,版本2中的模塊B,最后,模塊C可以使用兩個模塊A和B.

  使用Java 9的域驅(qū)動設計

  通過模塊概念,可以更好地表達軟件架構。例如,層可以表示為模塊,并且它們的界面可以被清楚地定義。編譯器可以至少部分地檢測并防止架構違規(guī)。我們舉一個銀行應用程序的例子,設計用域驅(qū)動的設計(清單2和圖1)。

  新的Java 9功能介紹

  module de.wps.bankprogramm.domainLayer { exports de.wps.bankprogramm.domainLayer.valueObject; 出口 de.wps.bankprogramm.domainLayer.entity;}module de.wps.bankprogramm.infrastructurelayer { exports de.wps.bankprogramm.infrastructureLayer.database;}module de.wps.bankprogramm.applicationLayer { requires de.wps.bankprogramm.infrastructureLayer; 需要 de.wps.bankprogramm.domainLayer; 出口 de.wps.bankprogramm.applicationLayer.repositories;}module de.wps.bankprogramm.uiLayer { requires de.wps.bankprogramm.domainLayer; 需要 de.wps.bankprogramm.applicationLayer;}

  系統(tǒng)的四層被實現(xiàn)為模塊。專用邏輯層(即模塊domainLayer)的模塊被聲明為與其他模塊沒有依賴關系。我們不想依賴技術代碼來污染我們的業(yè)務代碼。它包含一個用于我們系統(tǒng)的實體的包,一個用于它的值對象。的儲存庫,反過來,可以在基礎設施層(模塊infrastructureLayer)。因此,在這個設計中,它們被插入到應用層模塊(applicationLayer)中。根據(jù)上述聲明,可以訪問基礎設施和業(yè)務邏輯層。

  用戶界面層(uiLayer模塊)可以訪問用戶邏輯和應用層。使用數(shù)據(jù)庫訪問代碼的包將導致編譯器錯誤,因為它在基礎設施包中,并且沒有在uiLayer的要求中指定。存儲庫到應用程序?qū)拥姆峙湓诩軜嬌喜⒉煌耆逦窃谶@里完成,以避免使示例過于復雜。

  將JDK切成塊

  模塊機制對許多項目很有興趣,特別是JDK本身。這是項目名稱,拼圖來自的地方。并用這個拼圖Java應該分為模塊。到目前為止,整個JRE必須始終交付,即使只運行沒有GUI或不訪問數(shù)據(jù)庫的小程序。使用Java 9,JRE和JDK分解為模塊本身。這允許每個程序定義它需要什么,減少內(nèi)存使用和提高性能。

  Java標準模塊包括java.base,java.sql,java.desktop和java.xml。基本模塊java.base總是隱式包含 - 就像包java.lang不需要單獨導入一樣。模塊java.base將包含java.lang,java.math和java.io包。對于JDK本身的模塊,JAR文件不夠,因為它們也必須包含本機代碼。因此,這里介紹了所謂的JMOD文件。Java的首席架構師Mark Reinhold的直接引用:“JMOD文件是類固醇的JAR文件”。項目拼圖當然是Java 9帶來的巨大變化,也是其主要功能。但還有一些其他功能將使開發(fā)人員的生活更輕松。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?
      主站蜘蛛池模板: 亚洲精品在线免费观看视频 | 全部免费特黄特色大片农村 | xx毛片 | 日日做夜夜爽夜夜爽 | 特黄aa级毛片免费视频播放 | 国产精品高清一区二区三区不卡 | 久久色婷婷 | 国产毛片精品 | 九九热精品视频在线播放 | 天天在线天天在线天天影视 | 成人欧美一区二区三区 | 看黄视频网站 | 年轻的护士3 | 丁香五香天堂网卡 | 日本免费一区二区三区视频 | 欧美巨波霸乳影院67194 | 久久精品国产99国产精品澳门 | 青草久操| 天天操夜夜欢 | 久久夜色精品国产飘飘 | 足控免费视频xxav | 色91在线| 婷婷6月| 五月婷婷六月丁香 | 91视频-88av| 亚洲国产成人久久一区久久 | 精品国产三级在线观看 | 伊人精品网 | 色狠狠色综合吹潮 | 在线资源你懂的 | 狠狠色噜噜狠狠狠狠2021天天 | 免费在线播放视频 | 国产免费久久精品 | 国产逼逼视频 | 国产成人黄网址在线视频 | 天天色色色 | 久久精品国产清自在天天线 | 国内视频一区二区三区 | 很黄的网站在线观看 | 色噜噜人体337p人体 | 亚洲综合色婷婷中文字幕 |