在Ubuntu系统下配置Spring Boot开发环境
Fenix Lv1

从JAVA官网下载JDK安装包

1
2
3
cd /
cd home
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

解压Java安装包

1
2
cd /usr
tar -zxvf /home/jdk-21_linux-x64_bin.tar.gz

配置环境变量

1
nano /etc/profile
1
2
3
4
export JAVA_HOME=/usr/jdk-21.0.1
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

执行命令使环境变量生效:

1
source /etc/profile

检验是否配置完成

1
java -version

正常显示:

1
2
3
java version "21.0.1" 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)

也可以通过apt intall安装OpenJDK17

1
2
sudo apt update
sudo apt install openjdk-17-jdk

设置JAVA_HOME变量

需要将JAVA_HOME变量指向JDK的安装路径

  • 查看jdk的安装路径,which只能定位到执行路径
1
2
which java
/usr/bin/java
  • 如果已配置$JAVA_HOME
1
echo $JAVA_HOME
  • 通过ls -lrt查找
1
2
ls -lrt /usr/bin/java
lrwxrwxrwx 1 root root 22 Jan 4 14:19 /usr/bin/java -> /etc/alternatives/java

继续查找

1
2
ls -lrt /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Jan 4 14:29 /etc/alternatives/java -> /usr/lib/jvm/java-17-openjdk-amd64/bin/java

jkd路径为:
/usr/lib/jvm/java-17-openjkd-amd64

export命令的效果仅限于当前登录终端,如果永久有效,需配置到/etc/profile

1
export JAVA_HOME=/usr/lib/jvm/java-17-openjkd-amd64

安装Maven构建工具

Spring Boot项目依赖于Maven进行构建管理。

1
apt install maven

创建Spring Boot项目

可以使用Spring Initializr(https://start.spring.io)
或者手动创建一个基本的Spring Boot项目结构。

  • 创建myproject文件夹
1
2
mkdir myproject
cd myproject
  • 初始化一个空的Maven项目
1
2
3
4
5
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=demo \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
  • 导入IDE:使用Eclipse/IntelliJ IDEA都可以直接导入Maven项目。

  • 添加Spring Boot相关依赖:在pom.xml文件中,添加必要的Boot Spring依赖。如Web应用程序:

1
2
3
4
5
6
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
  • 编写和测试Spring Boot应用程序:
    完成上述步骤后,就可以编写自己的Spring Boot应用程序了。可以在src/main/java目录下创建包和类,然后编写业务逻辑。可以使用内置的Tomcat服务器运行应用程序,也可以部署到外部容器中。

使用start.spring.io自动生成的Spring Boot框架,记住一定要添加Spring Web依赖。生成后会自动下载到本地。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.
├── HELP.md
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
├── main
│   ├── java
│   │   └── com
│   │   └── example
│   │   └── demo
│   │   └── DemoApplication.java
│   └── resources
│   ├── application.properties
│   ├── static
│   └── templates
└── test
└── java
└── com
└── example
└── demo
└── DemoApplicationTests.java

14 directories, 7 files

编写业务相关的controller,与DemoApplication.java文件同级建立文件夹controller

1
2
mkdir src/main/java/com/example/demo/controller
nano src/main/java/com/example/demo/controller/HelloController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "hello world!";
}

}
  • 调试和运行应用程序:
    可以使用IDE提供的调试功能来调试Spring Boot应用程序。默认情况下,将在localhost:8080/hello上启动。

测试运行

1
mvn spring-boot:run

简化部署,执行打包命令

1
mvn package spring-boot:repackage

生成的包在target文件夹下,生成jar包,可以使用命令java -jar demo-name.jar

1
2
3
4
5
6
7
8
9
10
11
/home/myprojects/demo/target# ls -l
total 19240
drwxr-xr-x 3 root root 4096 Jan 3 07:07 classes
-rw-r--r-- 1 root root 19666460 Jan 3 07:42 demo-0.0.1-SNAPSHOT.jar
-rw-r--r-- 1 root root 3387 Jan 3 07:42 demo-0.0.1-SNAPSHOT.jar.original
drwxr-xr-x 3 root root 4096 Jan 3 07:07 generated-sources
drwxr-xr-x 3 root root 4096 Jan 3 07:07 generated-test-sources
drwxr-xr-x 2 root root 4096 Jan 3 07:42 maven-archiver
drwxr-xr-x 3 root root 4096 Jan 3 07:07 maven-status
drwxr-xr-x 2 root root 4096 Jan 3 07:42 surefire-reports
drwxr-xr-x 3 root root 4096 Jan 3 07:07 test-classes

启动web服务

1
java -jar demo-0.0.1-SNAPSHOT.jar

使用curl命令进行http请求

1
curl localhost:8080/hello

显示返回结果:

1
hello world!
由 Hexo 驱动 & 主题 Keep