The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 VSCode 的 Remote Container 建立 SAP Commerce 123 開發環境

最近承接了一個相當有趣的專案,客戶採用了一個在台灣相對冷門的 SAP Commerce (SAP Hybris) 電商平台(基於 Java 與 Spring Boot 框架),由於建立開發環境的過程經常會卡關,使用不同的作業系統與 JDK 版本都可能會遇到跟官網文件說明不太一樣的地方。這時我就在想,如何果把整個開發環境全部弄進 Linux 容器中執行,那不就簡單多了?所以我就嘗試了一下,也相當順利的整理出 SOP 標準作業流程,未來建立開發環境就不用鬼打牆兩三天了!👍

... 繼續閱讀 ...

如何將 Spring Boot 應用程式部署到 Tomcat 應用程式伺服器

我們在專案上因為面對不同的客戶,有時候會遇到各種形形色色的應用程式伺服器要部署,雖然 Spring Boot 已經有內建 Embedded Tomcat 伺服器,但這套主要用在開發時期或微服務部署之用。如果最終你的應用程式要部署到客戶的 Tomcat / JBoss EAP / IBM WebSphere 等正式環境,還是要做出一些調整才行。今天這篇文章就來深入探討部署到 Apache Tomcat® 的設定過程與完整知識。

... 繼續閱讀 ...

認識 Spring Boot 應用程式的啟動生命週期

我在學習一個全新框架時,很喜歡去看那些初學者不太愛看或看不太懂的內容。例如我在學 Angular 的時候,明明 ng new 就可以建立新專案,就可以開始寫程式,但我就會深入研究啟動的完整過程。而我在學 Spring Boot 的時候也一樣,雖然 Spring Initializr 真的很好用,相依套件選一選就可以開始開發應用程式,但我就會想瞭解這些神奇設計的背後做了什麼事,藉此瞭解一個框架的核心原理。這個過程看似沒效率,但事實上此舉可以學習到非常廣泛的知識,而且可以很好的連結不同技術細節。今天這篇文章我們就回歸基礎,看看 Spring Boot 應用程式的啟動生命週期。

... 繼續閱讀 ...

從無到有上手你的第一個 Spring Boot 應用程式

這幾年 Spring Boot 正夯,在 Java 界颳起一陣旋風,但他其實並沒有重新發明輪子,而是整合了一大堆好用的、現成的套件,然後設計一些簡潔的程式架構,搭配 IoC 與 AOP 大幅簡化開發的複雜度,也減少了許多繁瑣的設定步驟。今天這篇文章我不打算用 Spring Initializr 帶大家上手,而是完全手刻 Spring Boot 應用程式,從無到有解剖整個開發與啟動過程。

... 繼續閱讀 ...

如何將 Spring Boot 應用程式部署到 WildFly 應用程式伺服器

開源的 WildFly 應用程式伺服器 (WildFly Application Server) (WildFly AS) 是商用的 JBoss EAP (Enterprise Application Server) 的上游版本 (upstream project)。意思也就是說,JBoss EAP 是基於 WildFly AS 打造的,你只要學會如何部署應用程式到 WildFly AS,大概就知道如何部署到 JBoss EAP。今天這篇文章我打算來介紹如何將 Spring Boot 應用程式部署到 WildFly 應用程式伺服器。

... 繼續閱讀 ...

如何使用 Apache Maven 管裡多個模組的專案 (Multi-Module Project)

我在寫 .NET 的時候,經常會透過 Visual Studio 2022 的方案(Solution)來管裡多個專案(Project),透過適當的切割可以讓每個專案的職責更加明確,提升可維護性。若是寫 Java 的話,一個專案比較常被稱呼為一個模組(Module),所以經常可以看到 Multi-Module Project 這樣的說法。今天這篇文章我打算分享如何利用 Apache Maven 來建立一個多模組專案,並示範如何互相引用彼此的類別。

... 繼續閱讀 ...

深入淺出 Apache Maven 的 Plugins 外掛機制

Apache Maven 之所以強大,是因為他有一個強大的 Plugin 執行框架,你任何想讓 Maven 幫你完成的工作,無論是建置(Build)、封裝(Packaging)、產生報表(Reporting)、執行測試(Tests),全部都是透過 Plugins 完成的。它除了內建的核心 Plugins 之外,還有數以百計的第三方 Plugins 可以安裝使用。今天這篇文章我就來介紹一下他的基本架構與使用方式。

... 繼續閱讀 ...

珍惜生命,學習 Java 請少用 PowerShell 當成你主要的 Shell 環境

我個人在學習一門技術時,通常不太喜歡過渡依賴 IDE 幫我完成工作,因為方便的背後會錯過許多技術細節,所以我常常會不經意的刻意繞一下遠路。就像我今天在練習用 Maven 開發 Multi-Module Project 的時候,就發現我第一個命令就卡關了,這也太不順了吧。今天這篇文章,我就來說說為什麼建議大家還是少用 PowerShell 來當成你的主要工作環境。

... 繼續閱讀 ...

如何將私有的 JAR 檔加入到由 Apache Maven 管理的 Java 專案中

我們最近有個新的 Java 專案,客戶提供原始碼之後,卻發現他們自己架設的 Maven Repository 並沒有開啟防火牆讓我們連線,以致於專案無法下載相依套件而無法建置。但除了開防火牆連線外,其實還有很多方法可以讓你獲取 Maven 所需的相依套件。今天這篇文章,我就來分享關於 Maven 如何管裡相依套件,以及如何正確的將私有的第三方 JAR 檔加到專案內,降低團隊取得這些 JAR 檔的門檻。

... 繼續閱讀 ...