Spring HelloWorld
HelloWorld、Maven、SDKMAN、IntelliJ IDEA
示例代码:code/learn-spring/helloworld
基础环境准备
- JDK:Java 开发工具包(Java Development Kit),建议使用 LTS 版本1,即 Java 8、11 和 17
- Maven:开源项目管理与构建工具,帮助管理依赖与项目构建过程
- IDE:集成开发环境,可以选择 IntelliJ IDEA 或者 Eclipse
安装 JDK
由于 Oracle 的商业策略调整 12,自 2019 年 4 月 16 日起的 Oracle JDK 版本不可免费用于商业目的,如有需要可以订阅其服务2。如果出于个人学习目的,可以继续使用 Oracle JDK,但也可以使用 OpenJDK。
使用 HomeBrew 来安装:
brew cask install java11
为了方便安装和管理,可以使用 SDKMAN 来安装 JDK:
curl -s "https://get.sdkman.io" | bash
安装完成后,再打开一个终端(这个要注意),输入:
source "$HOME/.sdkman/bin/sdkman-init.sh"
通过 sdk version 命令可检验安装是否成功:
sdk version
获得当前操作系统可用的 JDK 信息:
也可以在 https://sdkman.io/jdks 页面上可以看到 SDKMAN 支持的 JDK 版本信息
`sdk list java`
安装 JDK 特定版本:
sdk install java 11.0.2-open
切换 JDK 版本:
sdk use java 1.8.0_192
安装 Maven
Spring 项目支持使用 Maven 与 Gradle 来管理项目的依赖配置与打包等流程。
如果选择使用 IDEA 作为 IDE,IDEA 中自带了 Maven,可以跳过安装的步骤,但还是建议单独安装最新版本的 Maven。
macOS 可以使用 SDKMAN 来安装:
注:Spring Boot 官方要求使用的 Maven 版本必须在 3.3 以上
sdk install maven
验证安装:
注:无论是什么操作系统,在使用 Maven 的 mvn 命令前,都要确保正确安装了 JDK,并且设置了 JAVA_HOME 环境变量
mvn -v
Maven 默认使用官方仓库,在国内访问时可能会比较慢,因此建议配置一个国内的仓库镜像(如阿里云的镜像3):
参考 maven 配置指南:https://developer.aliyun.com/mvn/guide
将如下内容添加到 Maven 安装目录的 conf/settings.xml 文件的 <mirrors></mirrors>
标签中:
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
也可以在用户目录的 .m2 子目录中(比如 macOS 或 Linux 的 ~/.m2,Windows 的 C:\Users\ 用户名 .m2)创建 settings.xml,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
</settings>
安装 IDE
推荐使用 IntelliJ IDEA,社区版(Community 版本)搭配插件也能完全满足需求
macOS 可以通过 HomeBrew 来安装对应版本:
# 安装社区版
brew cask install intellij-idea-ce
从 2020.1 版本开始,IDEA 开始官方支持中文语言了,需要的话可以自行从 Marketplace(插件市场)中安装中文插件
安装完成:
- 根据机器配置调整 IDEA 的启动参数(见下),让 IDE 的运行更流畅(在菜单中找到 Help → Edit Custom VM Options,在打开的 idea.vmoptions 文件中编辑)
- 安装插件:Lombok、Maven Helper(为了方便查看 Maven 的 POM 文件)
默认参数:
-Xmx1262m
配置参数:
-Xms1024m
-Xmx2048m
-XX:+UseConcMarkSweepGC
-Djava.net.preferIPv4Stack=true
-Dfile.encoding=UTF-8
IDEA Plugins Marketplace:
Lombok:
Lombok是一个 Java 库,它的设计目的是为了简化 Java 编程,尤其是减少日常开发中大量的样板代码。Lombok 通过在代码中使用特定的注解,能够在编译时自动为类生成构造器、getter/setter、equals、hashCode、toString等方法,从而省去了手动编写这些常见但又繁琐的代码部分。
例如,只需在类定义上加上 @Data
注解,Lombok就会为该类自动生成所有必需的 getter、setter、equals、hashCode 和 toString 方法。这不仅减少了出错的 可能性,也使得代码更加简洁易读,开发者能够更专注于业务逻辑的实现。
Lombok 不仅是一个库,它还需要 IDE(如IntelliJ IDEA 或 Eclipse)的插件支持来识别这些注解并在编译时执行相应的代码生成操作。由于其便捷性,Lombok 在 Java 开发者社区中颇受欢迎。
通过 Spring Initializr 创建工程
在正式编码前,需要创建一个工程骨架,完成一些最基本的初始化工作,比如搭建目录结构、初始化 [[Maven]] 的 [[pom.xml]] 文件(如果使用 Gradle 的话则是初始化 build.gradle 文件)以及生成启动类,等等。
Spring 官方为我们提供了一个新工程的初始化工具4:Spring Initializr,可以通过它快速创建一个空白工程:
填写完所有信息后,点击 GENERATE(生成),即可下载 helloworld.zip 压缩包。
阿里云基于 Spring Initializr 的代码制作了一套 Aliyun Java Initializr5,在国内访问速度较快,而且是中文界面,其中还包括了一些 Spring Cloud Alibaba 和阿里云的依赖项。
在下载完 helloworld.zip 后,将 其解压到某个目录中,然后用 IDEA 导入项目即可:
示例:code/learn-spring/helloworld
编写简单的 REST 服务
在 Spring Framework 和 Spring Boot 的帮助下,我们可以很方便地编写可执行的 REST 服务:
@SpringBootApplication
@RestController
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@RequestMapping("/helloworld")
public String helloWorld() {
return "Hello World! Bravo Spring!";
}
}
访问端口:8080
浏览器访问:http://localhost:8080/helloworld
Footnotes
-
LTS(Long Term Support),即长期支持,Oracle 会对 LTS 版本提供长期付费支持,Oracle JDK 8 最长支持到 2030 年 12 月,Oracle JDK 11 最长支持到 2026 年 9 月,Oracle JDK 17 最长支持到 2029 年 9 月 ↩
-
详见 “Oracle Technology Network License Agreement for Oracle Java SE” ↩
-
阿里云 Maven 镜像: https://developer.aliyun.com/mvn/ ↩
-
Spring Initializr: https://start.spring.io/ ↩
-
Cloud Native App Initializer: https://start.aliyun.com/ ↩