精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

JavaEE框架的介紹

這篇文章主要介紹“Java EE框架的介紹”,在日常操作中,相信很多人在Java EE框架的介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java EE框架的介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

10年積累的成都做網站、成都網站建設、成都外貿網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先做網站后付款的網站建設流程,更有邵東免費網站建設讓你可以放心的選擇與我們合作。

確保高效發展進程的建議

很久以前,J2EE,特別是應用程序服務器被認為過于臃腫和“重量級”。對于開發人員來說,使用此技術開發應用程序會非常繁瑣且令人沮喪。但是,由于 J2EE 框架的名稱已更改為Java EE,因此該假設不再適用。 Java EE 與其他企業框架相比區別在哪以及框架輕量級的標準是什么?

在選擇技術時,需要考慮的最重要方面之一是開發人員在開發過程中的生產力。工程師應該花費盡可能多的時間來實現用例和創收功能,因為這將使公司朝著目標前進。

所選擇的技術和方法應該最大限度地縮短開發人員的時間。具體哪些時間呢:等待構建,測試和部署; 配置應用; 實施與業務用例無關的管道; 并配置構建環境和外部依賴項。 但是大多數可用技術都沒有這樣做。

1.為什么標準?

與其他框架相比,Java EE 的最大優勢之一是使用的API的標準化。標準聽起來可能很無聊而且不夠創新 - 從本質上講,這是真的,因為Java規范請求(JSR)已經成為行業內過去已經過充分證明的結果。 但使用這些標準有幾個優點。

2.整合規范

Java EE中的特定API - 例如上下文和依賴注入(CDI),JAX-RS,JSON 處理(JSR 353)和 Bean驗證 - 可以很好地協同工作,并且可以無縫地相互組合。 最重要的是,CDI 被用作應用程序組件之間的“粘合劑”。 該規范包含諸如*“如果容器支持規范 A 和 B,那么 A 必須與 B 無縫集成并良好地工作。”*

例如,JAX-RS 支持 JSONP 類型,例如JsonObject用作請求或響應實體,它支持調用Bean 校驗功能 - 如果驗證失敗,則包括正確的HTTP狀態代碼(參見清單1)。

@Path("duke") 
public class DukeResource {           
    @GET          
    public JsonObject getDuke() {                   
        return Json.createObjectBuilder().add("name", "Duke").build();         
    }     
    @POST         
    public void create(@Valid @NotPlayedYet Game game) {    
                // game object has been validated at this point         
    }
}

清單1. JAX-RS的JSONP和Bean Validation集成

使用 JSONP 類型意味著內容類型將是 application / json,并且如果驗證失敗,將發送HTTP狀態代碼 400 Bad Request。 這無需編寫任何配置代碼就能使一切都完成。

另一個例子是 CDI 使開發人員能夠通過 @Inject 將任何 bean 和用戶定義的對象注入 Java EE托管組件。 請參閱清單2,了解一個 bean 驗證 Validator,它直接使用另一個 CDI 托管bean。

public class GameNotPlayedValidator implements ConstraintValidator {          
    @Inject          
    GameHistory history;          
    public void initialize(NotPlayedYet constraint) {                 
        // no initialization needed         
    }      

    public boolean isValid(Game game, ConstraintValidatorContext context) {                   
        return !history.exists(game);        
    }
}

清單2. bean 驗證的 CDI 集成

集成是規范的一個主要方面,可以提供直接的開發人員體驗。開發人員可以依賴應用程序服務器進行集成和配置工作,從而可以專注于應用程序的業務邏輯。

3.按配置約定驅動開發

由于 Java EE 的配置約定驅動方法,大多數實際應用程序不需要大量配置。 繁瑣的 XML 描述符的日子結束了。 對于簡單的 Java EE 應用程序,您不需要單個 XML 文件。

由于聲明性注釋,一個簡單的帶注釋的普通舊 Java 對象(POJO)處理 HTTP 請求(@Path),或分別作為 Enterprise JavaBeans(EJB)bean(@ Stateless) - 包括事務,監視或攔截器。過去,這些方法已在各種框架中得到很好的證明,并已在 Java EE 中進行了標準化。

如果需要,XML 描述符仍可用于部署時配置,但是配置約定有助于最大限度地提高開發人員的工作效率。

4.外部依賴

少數實際企業項目在部署工件中沒有任何額外依賴項的情況下工作。 但這些依賴關系的理由主要是由技術驅動 - 例如包括日志記錄或實體映射框架或 Apache Commons 或 Google Guava 等常用庫 - 而不是用例。

Java EE 7 - 尤其是與 Java 8 一起使用時 - 具有足夠的功能來覆蓋大多數用例而沒有任何其他依賴性。開箱即用的內容大部分都可以用最少量的代碼來實現,例如,通過 CDI 提供商的可注入配置,通過攔截器的斷路器(查看 Adam Bien 的開源庫),或通過復雜的收集操作 Java 8 lambda 表達式和流。

當然,你可以爭辯說不要在這里重新發明輪子。 但實際上,為了節省一些自編寫的代碼行,將兆字節的外部依賴項包含在部署工件中并沒有多大意義。

經驗表明,最大的問題不是直接引入的依賴,而是傳遞的依賴。傳遞的依賴經常與應用程序服務器上已有的庫版本沖突,并導致具有挑戰性的沖突。在一天的工作時間內,開發人員要花費更多時間來管理這些沖突,而不是聚焦在將小功能實現到項目中所需的時間。這主要適用于具有技術驅動而非用例驅動的依賴關系的情況。

有關簡單的 Java EE 7 項目Maven項目對象模型(POM)的文件啟發,請參閱清單 3,該文檔受Adam Bien的啟發 Java EE 7 Essentials Archetype.

     
 4.0.0     
 com.sebastian-daschner     
 game-of-duke     
 1.0-SNAPSHOT     
 war      

          
                  
          javax             
          javaee-api             
          7.0             
          provided         
          
       

          
     game-of-duke     
       

          
     1.8         
     1.8         
     false         
     UTF-8     
      

清單3. Java EE 7 Maven POM 文件

當然,有時應用程序確實需要集成對于實現軟件目標至關重要的庫。但是,這些依賴關系需要通過業務需求來證明。一般來說,它很有意義,可以節省時間和精力來最小化外部生產庫。

對于測試依賴關系,這是一個不同的故事,因為庫,例如JUnit,Mockito或者在某些情況下,Arquillian - 是至關重要的。 但同樣,關注測試依賴項列表也是有意義的。

5.精簡部署 Artifacts

由于應用程序服務器知道Java EE API,因此該API不必包含在部署 artifact 中。 只包含業務邏輯 - 只需最少的膠水代碼和交叉關注點。

因此,這些千字節大小的工件可以使構建時間非常短,因為構建過程不需要復制很多東西。這可以在每個構建上產生幾秒鐘的差異。 如果總結開發人員和持續集成(CI)服務器所花費的所有額外時間,那就會產生很大的不同。項目建設的頻率越高 - 對于持續交付(CD)情景尤其如此 - 影響越大。

除了較短的構建時間外,小型部署 artifacts 還可確保較短的發布和部署時間。 由于實現已經包含在運行時中,所以在所有情況下,移動部件花費的時間都是最小的。

6.Docker的理想框架

這正是Java EE成為Docker等容器技術的完美框架的原因。Docker 鏡像基于圖層,構建圖像時,基本圖像已包含操作系統,Java運行時和應用程序。因此,在每個構建中添加的唯一內容是部署工件的最后一個千字節薄層。與胖WAR或獨立JAR方法相比,這節省了時間和存儲 - 不僅在每個構建上,而且在圖像版本化或發布版本時 。

無論在哪個階段,擁有精簡的部署 artifacts 都可以實現非常快速和高效的部署管道。

7.現代應用服務器

J2EE 應用程序服務器是重量級軟件在啟動和部署時間,安裝大小和資源占用空間方面的體現。 但是在 Java EE 的新世界中,這已不再適用。

所有現代Java EE 7應用程序服務器(如WildFly,Payara,WebSphere Liberty,Profile和TomEE)都可在幾秒鐘內啟動和部署。由于內部,全面的模塊化,他們只能加載所需的組件并盡快部署精簡的應用程序 artifacts。

現在的安裝尺寸和占地面積非常合理。 應用程序服務器不會消耗比簡單的 servlet 容器更多的東西,但它具有完整的 Java EE 功能。 有趣的是,現在運行的瀏覽器實例消耗更多內存。

話雖如此,每個服務器只部署一個應用程序是可能的,也可以是合理的 - 無論是在容器中還是在內部。 通過“每個容器每個應用程序服務器一個應用程序”方法,您可以為現代微服務架構提供高效且靈活的解決方案。

8.打包

在打包過程中,不應該繼續使用EAR文件了。將整個應用程序部署在獨立的專門的服務器上,要求我們在那個環境中必須可以訪問所有的組件方法,這樣做可以節省更多的構建和部署時間。除此之外,這還避免了EAR文件傾向于導致的類加載層次結構問題。

在大多數云和微服務部署中,使用獨立的JAR包。 它們包含應用程序和運行時實現。 在Java EE領域,這種方法可以使用特定于供應商的工具鏈來實現,例如 WildFly Swarm,Payara Micro 或TomEE Embedded。

但是,由于上述原因,我強烈建議盡可能將業務邏輯與運行時分開。 這意味著將應用程序打包在僅包含應用程序代碼的WAR文件中。

在我看來,如果由于公司“政治”問題而不是技術原因而無法控制安裝或操作流程,則獨立 JAR 文件是一種有用的解決方法。 然后運送部署工件中所需的所有內容并且只需要 JRE 時可以解決相當多的非技術問題。

9.關于高效研發進程的建議

企業項目最有效的解決方案之一如下:

  • 僅在提供 API 時使用 Java EE 7 和 Java 8

  • 構建一個千字節大小的 WAR 文件,其中僅包含業務邏輯和最小管道(例如 JAX-RS 資源或JPA)

  • 構建 Docker 鏡像 - 僅將 WAR 文件添加到包含已配置的應用程序服務器的基礎鏡像

  • 通過使用容器部署應用程序的 CD 管道進行傳送

10.結論

“重量級 Java EE”的日子肯定結束了。 Java EE 中包含的 API 提供了高效且愉快的開發人員體驗以及標準內的無縫集成。 特別是,將應用程序代碼與運行時分離的方法可實現快速,高效的開發過程。

通過由多個供應商發起的新MicroProfile計劃,將來可能會進一步縮小Java EE所需的組件。

到此,關于“Java EE框架的介紹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!


新聞名稱:JavaEE框架的介紹
標題來源:http://m.jcarcd.cn/article/pcosop.html
主站蜘蛛池模板: 91自拍偷拍走光 | 国产高清乱理 | 国产乱伦高清影视 | 日韩欧美国产电影 | 欧美日韩国产a区 | 国产精品成人国产乱 | 人成视频在线观看 | 中文字幕在线播放 | 国产亚洲老 | 国产九九精品在线 | 91丨九色丨蝌蚪 | 精品国产人成亚 | 成人乱码| 欧美三级网址 | 国产舌乚八伦偷品w | 91福利社区视频 | 成人免费**毛 | 伦理片国产精品 | 日本xxxx色视 | 国产导航精品 | 午夜日韩 | 日本伦理片在线看 | 国产一区二区我不卡 | 国产欧美日本精品 | 青草视频线路 | 国产大片黄在线观 | 国产色爽免费视频 | 日本在线看片 | 国产在线观看色窝网 | 日韩天堂在线视 | 国语精品 | 国产真实乱对白精彩 | 午夜视频免费观看 | 成人深爱激情综合网 | 福利所视频导航 | 91九色在线播放 | 强奷到高湖喷水91 | 日韩乱码人 | 精品9999| 午夜视频在线观 | 成人影视大全 |