成为 Java 开发人员的最佳时机到了吗?

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

成为 Java 开发人员的最佳时机无疑是现在了?

如今可用的生产力工具,在短短五年前都是不可思议的。

Spring Boot为例。许多在 Spring 网站上阅读这篇文章的人可能熟悉 Spring Boot。但让我们花点时间来承认它的卓越之处。

多年前,如果你要在应用程序中使用 Spring Framework,你必须接受每天都要面对一定量的配置苦差事。但这并不是友好的配置,比如(啊,抱歉,我真的想不出“友好配置”的例子),而是令人讨厌的 XML 配置,还搭配着 XSD,真是恶心!

后来,Spring 确实提供了一些对开发者更友好的配置选项(比如基于 Java 的配置),但 Spring Boot 在 2013 年问世时,成功地减轻了 Spring Framework 开发人员的大部分责任。这很大程度上归功于其创新的“自动配置”功能。

有了 Spring Boot 的“启动器”,你的 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 项目。你甚至不需要浏览器!你可以直接从命令行使用 curlSpring CLI 来使用 Spring Initializr。

说真的,如果你从未尝试过,现在就试试吧。它真的相当简单。

你只需要一个带有 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 将为你启动应用程序。现在打开你喜欢的浏览器,访问 http://localhost:8080/actuator/health,你将看到一个 JSON 消息,确认应用程序正常运行,随时可用。

{"status":"UP"}

与过去相比,这一切都简单到了令人发指的地步。

事实上,它如此简单,我敢打赌一个孩子也能做到。如果你手边有一个,为什么不现在就让他们坐下来试试呢?有什么比使用 Spring Boot 和 Spring Initializr 更好地开始一个人的编码之旅呢?欢迎在下方评论区告诉我们你的体验,或者将你的截图或照片通过标签 #SpringFTW 发送到 @springcentral

下次

在我的下一篇文章中,我将把这个简单的应用程序运行在一个“接近生产环境”的环境中,模仿你在新创公司第一天可能做的事情 :D

想了解更多吗?

如果这个任务太简单,或者你有更多时间,为什么不将“thymeleaf”和“devtools”依赖添加到你之前进行的 Spring Initializr curl 请求中,然后按照这个教程构建你自己的简单 Web 应用程序:https://springframework.org.cn/guides/gs/serving-web-content/

订阅 Spring 新闻通讯

订阅 Spring 新闻通讯,保持联系

订阅

领先一步

VMware 提供培训和认证,为你的进步加速。

了解更多

获得支持

Tanzu Spring 通过一份简单的订阅,为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

即将到来的活动

查看 Spring 社区所有即将到来的活动。

查看全部