現在是成為 Java 開發者的最佳時機嗎?

工程 | Ben Wilcock | 2019 年 3 月 07 日 | ...

現在絕對是成為 Java 開發者的最佳時機,不是嗎?

現在有許多生產力工具,即使在五年前,也會讓人覺得難以置信。

Spring Boot 為例。許多在 Spring 網站上閱讀本文的人可能已經熟悉 Spring Boot。但讓我們花一點時間來讚賞它的卓越之處。

幾年前,如果你要在應用程式中使用 Spring Framework,你必須接受配置會耗費你大量的時間。但它不是那種友好的配置,(啊,實際上,抱歉,我想不出任何「友好的配置」的例子),它是討厭的 XML 配置,還搭配了 XSD,噁!

後來,Spring 的確推出了更友好的開發者配置選項(例如基於 Java 的配置),但 Spring Boot 在 2013 年問世時,成功地讓 Spring Framework 開發者擺脫了許多這些責任。這主要歸功於其創新的「自動配置」功能。

有了 Spring Boot 的「starters」,你的 Spring 應用程式可以簡單地自行配置。你不再需要對平台的所有細節有百科全書般的了解才能開始。如果你願意,你仍然可以掌控,但這不再是必要條件。這顯著地降低了 Spring 的學習曲線,並且對 Spring 開發人員來說是一種極大的解放。所有那些花在閱讀文件、配置東西、排除錯誤的時間,都可以更好地利用。真是太棒了!

然後是 Spring Boot 出色的應用程式封裝。

Java 的「一次編寫,隨處運行」的承諾對於企業 Java 開發人員來說是一個殘酷的笑話。你會花費數小時來打包應用程式的 WAR 文件,並努力讓你的部署描述符能夠工作,但後來卻發現它「只能在你的機器上運行」。可惡!

Spring Boot 的可執行 JAR 封裝解決了所有這些廢話。透過將 Web 容器與二進制文件捆綁在一起,你的應用程式可以在任何有相容 JVM 的地方運行。真是天才之舉。難怪 Spring Boot 成為 世界上最受歡迎的 Java Web 框架

但要達到這個程度,你需要一個可建構的 Java 專案。

坦白說,啟動任何新的 Java 專案都是一件苦差事。Maven 和 Gradle 都是出色的構建工具。我們不能沒有它們。但是,IDE 對它們的支援並不完善,而且誰願意花時間編輯 POM 並弄清楚 Gradle DSL 的最新動態?不是我。我太沒耐心了。人生苦短。

所以感謝 Spring Initializr。使用 Spring Initializr,你可以立即下載一個現成的 Spring Boot 專案,並使用你選擇的語言和構建工具。你甚至不需要瀏覽器!你可以直接從命令列使用 Spring Initializr,使用 curlSpring CLI

說真的,如果你從未嘗試過,現在就試試看。它真的非常簡單

你只需要一個帶有 curl 和 Java 的命令列。使用這個簡單的命令,你可以向 Spring Initializr 請求一個 Zip 檔案,然後解壓縮,然後就可以開始了。只需將解壓縮的專案載入到你最喜歡的 IDE 中,你就可以立即開始編碼。

curl https://start.spring.io/starter.zip -d dependencies=web,actuator -d baseDir=demo -o demo.zip
unzip demo.zip

我在這裡假設使用 Linux,但你也可以為 Windows 和 Mac 取得 curl

現在它已經下載並解壓縮了,讓我們運行我們的應用程式,同時試試 Spring Boot 出色的 JAR 封裝。只需輸入以下內容,即可使用你的 Java VM 啟動它…

cd demo
./mvnw package # Use mvnw.cmd on Windows
java -jar target/demo-0.0.1-SNAPSHOT.jar

如果你沒有 Java,請前往 https://adoptopenjdk.net/ 取得安裝程式或安裝說明。

就是這樣。Spring Boot 將為你啟動應用程式。現在打開你最喜歡的瀏覽器,然後前往 https://127.0.0.1:8080/actuator/health,你將看到一條 JSON 訊息,確認應用程式已啟動並運行,並且已準備就緒。

{"status":"UP"}

與過去相比,這一切都非常簡單。

事實上,它非常簡單,我敢打賭一個孩子也能做到。如果你手邊有一個,為什麼不請他們坐下來,立即嘗試一下呢?還有什麼比 Spring Boot 和 Spring Initializr 更好的方式來啟動某人的程式設計之旅呢?為什麼不在下面的評論中告訴我們你的進展,或將你的螢幕截圖或照片發佈到 @springcentral 的 Twitter 上,並帶上主題標籤 #SpringFTW

下次

在我的下一期文章中,我將採用這個簡單的應用程式,並在一個「類似生產」的環境中運行它,模仿你在新創公司第一天可能會做的事情 :D

你想要更多嗎?

如果這個任務太容易了,或者你有更多的時間,為什麼不將「thymeleaf」和「devtools」依賴項添加到你之前的 Spring Initializr curl 請求中,並按照這個教程來建構你自己的簡單 Web 應用程式:https://spring.dev.org.tw/guides/gs/serving-web-content/

取得 Spring 電子報

隨時關注 Spring 電子報

訂閱

取得領先

VMware 提供培訓和認證,以加速你的進度。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進制檔案。

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

查看全部