Jakarta EE 社區之聲:CDI 才是 Jakarta EE 的未來

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

據 eclipse 報導,在今年10月的 CodeOne 和 EclipseCon 之前,Jakarta EE 指導委員會發出呼籲,要求社區分享他們對 Jakarta EE 未來的個人願景。社區沒有讓人失望。

27 位 Jakarta EE 夢想家共收到超過 70 個簡短的書面回答,回答了 7 個問題。

最響亮和最詳細的答案圍繞著將 CDI 推向平台範圍內 Jakarta EE 的遠角,作為所有規格的單一且唯一的組件模型。在 27 個聲音中,絕大多數人都表達了他們對 CDI 如何統治 Jakarta EE 世界的願景。 Payara 的史蒂夫·米利奇(Steve Millidge)說得很好,「所有的規範都需要協同工作來整合 CDI 作為基線 bean 模型,這將推動複雜性和重復,使 Jakarta EE 平台更加輕量級,內部一致。」

可以改變採用或利用 CDI 的平台的特定領域包括:

JMS 允許消息被 EJB 消息驅動 Bean 以外的組件使用。Reza Rahma n指出:「創建基於 CDI 的 JMS 監聽器的工作始於 JMS 2但從未完成」 。

根據 Markus Karg 的說法,JAX-RS 提交者「希望擺脫古老的 JAX-RS DI 技術,並用 CDI 代替它」,Sebastian Dashner,Emily Jiang 和其他幾個項目成員也對此表示讚同。Santiago Pericas-Geertsen 指出 CDI bean 目前可以利用 JAX-RS,但「兩個注入框架的組合會產生一些難以解決的醜陋邊緣情況」,例如應該處理構造函數注入。

「JCA 是一個非常強大的 API,用於連接到許多不同的企業系統」,Steve Millidge 指出,在 CDI 上重新調整它可以做到與 Apache Kafka 或 Cloud Messaging 系統等系統的更好連接。在其他答案中注意到,盡管 JCA 在 Java EE 7 中得到了極大的改進,但它與 MDB 相關聯,MDB 沒有明確定義的生命周期並且需要 EJB。

「EJB 和 CDI 在許多領域都是多餘的,最終將 EJB 規範中缺少的和必要的部分構建到 CDI 中會很好,這樣 EJB 就可以逐步淘汰」 Josh Juneau 回答道。一些社區的聲音呼應了積極的情緒。

雖然對 CDI 的熱愛是明確的,但 Mark Struberg 和規範負責人 Antoine Sabot-Durand 警告說,CDI 不應該成為下一個 EJB,CDI 的 SPI 應該被用來進行這些集成。Sabot-Durand 補充說,他對 CDI 演進的看法涉及清除 SPI,「還可以專注於更多的異步支持,看看如何增強 CDI 事件以使其更強大。」

Eclipse Vert.x 的 Clement Escoffier 非常關注將強大的異步支持推向 CDI 的熱情,盡管他是「CDI 新手甚至是 CDI noob」但他認為 CDI 可以接受反應,並表示他致力於幫助它做到目標。Escoffier 說,這將是一項工作,但「沒有挑戰,生活將無聊」。

Laird Nelson 分享了 CDI 本身的一些激進想法,表明 CDI 可以成為引導服務器的權威 API,允許開發人員控制 public static void main,包括「將命令行參數標準化傳播到 CDI 環境中」。類似的命令行參數思想浮現在 Eclipse MicroProfile Config 項目周圍,這是一個很好的東西。

從應用程序框架到服務器框架

有一點很清楚。為了使所有這些規範與 CDI 保持一致,實施者將被迫使用 SPI 將其代碼重新編碼為 CDI 擴展。CDI 將從開發人員使用的 API 轉換到用於構建服務器的 API,使其成為 Jakarta EE 的 SystemD 和 SysV,迫使它解決類似的問題,例如擴展啟動順序。

我們會看到 CDI 從 DI 框架擴展到內核嗎?很可能。

如果 CDI 成為我們未來的服務器構建框架,那將是因為所有 27 個社區的聲音都指向了 2018 年的 CDI,並且作為 Jakarta EE 社區的第一幕。

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!