Eclipse MicroProfile

自 Eclipse 於 2016 年主導推出的 MicroProfile 橫空出世起,就一直很關注這個框架。不過神奇的是,數年過去了,國內資料還是很少,不大確定是不是因為我是生手找不到資源,還是真的在國內乏人問津。

當時會關注有幾個原因:

  1. Spring + Hibernate 屹立不搖;
  2. 由 Sun 主導後來轉手 Oracle 的 Java EE 前途未明;
  3. 這時卻殺出第三個陣營也就是 MicroProfile,採取的方法是擷取(或捨棄)部分 Java EE 的規格,然後再加上自己獨有的規格。

從現在各 Application Server 均支援 MicroProfile 來看,顯然 Eclipse 成功了!我認為,可能的原因包括:

  1. 定位明確 => 站在 Microservice Architecture 的浪潮
  2. 輕量化 => 配上 Docker 的崛起
  3. 未來清楚 => 吸收 Java EE 的社群
  • Oracle 後來將 Java EE 有條件的貢獻給 Eclipse 基金會
  • 隨著 Eclipse 基金會的運作,還有 Oracle 的推波助瀾,Java EE 正式走入歷史
  1. 社群活躍 => 直至今日已經來到了 3.2 版了

那麼,為什麼我在現在要來玩 MicroProfile 呢?
原因當然是 因為我現在很閒~😝 現在正是學習 MicroProfile 的好時機點!!
最主要的理由是:

由 Java EE 新生的 Jakarta EE 正式發佈了第一版!!(撒花~

現在 Eclipse 掌握了 MicroProfile 以及 Jakarta EE,因為定位不同,但都有可以相容、互助的地方,勢必會有更大幅度的整合與重新區隔。你說,對原本 Java EE 的使用者來說,不趁這時候學起來,什麼時候學呢?(不過,也是可以改學 Node.js 啦,好火熱啊~遠目

要使用 MicroProfile 也很簡單,只要在 maven 的 pom.xml 加入以下相依:

<dependency>
    <groupId>org.eclipse.microprofile</groupId>
    <artifactId>microprofile</artifactId>
    <version>3.2</version>
    <scope>provided</scope>
    <type>pom</type>
</dependency>

而我習慣的使用的伺服器是 Payara!不得不說,好處多多:

  1. 衍生自 GlassFish - Jakarta EE 的官方實作
  2. 同時支援 MicroProfileJakarta EE
  3. Payara 的 Micro 版只要不到 80 MB,是個直接可執行的 .jar,超適合現在的 Cloud Computing

如果,你也願意嘗試看看,那麼請在 pom.xml 中加入以下設定:

<plugin>
    <groupId>fish.payara.maven.plugins</groupId>
    <artifactId>payara-micro-maven-plugin</artifactId>
    <version>1.0.6</version>
    <configuration>
        <payaraVersion>5.194</payaraVersion>
        <deployWar>false</deployWar>
        <commandLineOptions>
            <option>
                <key>--autoBindHttp</key>
            </option>
            <option>
                <key>--deploy</key>
                <value>${project.build.directory}/${project.build.finalName}</value>
            </option>
        </commandLineOptions>
        <contextRoot>/</contextRoot>
    </configuration>
</plugin>

準備好了嗎?MicroProfile on Payara 我們走吧!