适合读者:平时主要写 Vue、React、uni-app 或小程序的前端同学,第一次接触 Java 后端项目,希望从零搭好环境,能连接数据库、启动服务、打包部署,并掌握常见重启方式。
一、先理解后端项目需要哪些东西
前端项目一般安装 Node.js 后执行 npm run dev 就能启动。后端项目多了几个基础依赖:
| 环境 / 工具 | 作用 | 类比前端 |
|---|---|---|
| JDK | 运行 Java 程序 | Node.js 运行 JS |
| Maven | 下载依赖、编译、打包 | npm / pnpm |
| MySQL | 保存业务数据 | 后端数据库 |
| Redis | 缓存、验证码、登录状态等临时数据 | 本地缓存服务 |
| IntelliJ IDEA | Java 开发 IDE | VS Code |
| Docker | 快速启动 MySQL、Redis 等服务 | 容器化环境 |
| API 调试工具 | 测试后端接口 | 浏览器 DevTools / Postman |
一个典型 Spring Boot 后端项目启动后,大致是这样:
浏览器 / 前端页面 | v Spring Boot 后端服务 | +--> MySQL:存用户、配置、日志等持久化数据 | +--> Redis:存验证码、缓存、临时 token 等数据
二、需要安装的软件清单
1. 必装软件
| 软件 | 推荐版本 | 下载地址 |
|---|---|---|
| JDK | 17 或更高,推荐 17 | Eclipse Temurin JDK / GraalVM |
| Maven | 3.6+,推荐 3.9+ | Maven Download |
| Git | 最新稳定版 | Git for Windows |
| MySQL | 8.0 推荐 | MySQL Community Server |
| Redis | 最新稳定版 | Redis Docker 镜像 |
| Node.js | LTS 版本 | Node.js Download |
2. 推荐安装
| 软件 | 用途 | 下载地址 |
|---|---|---|
| IntelliJ IDEA | 写 Java、启动后端、断点调试 | IntelliJ IDEA |
| VS Code | 写前端、看文档、改配置 | VS Code |
| Docker Desktop | 一键启动 MySQL、Redis,避免污染本机环境 | Docker Desktop |
| DBeaver | 可视化连接 MySQL | DBeaver |
| Apifox / Postman | 调试接口 | Apifox / Postman |
| FinalShell / Xshell | 连接 Linux 服务器 | FinalShell |
三、安装 JDK
1. 下载 JDK
推荐安装 JDK 17。下载 Windows x64 安装包后,按提示安装即可。
安装完成后,打开 PowerShell:
java -version
看到类似下面的内容,说明安装成功:
openjdk version "17.x.x"
2. 配置 JAVA_HOME
如果 java -version 无法识别,需要手动配置环境变量。
Windows 配置方式:
-
右键“此电脑”。
-
点击“属性”。
-
进入“高级系统设置”。
-
点击“环境变量”。
-
新增系统变量:
变量名:JAVA_HOME 变量值:你的 JDK 安装目录
例如:
C:\Program Files\Eclipse Adoptium\jdk-17.x.x
-
在
Path中新增:
%JAVA_HOME%\bin
-
重新打开 PowerShell,再执行:
java -version
四、安装 Maven
1. 下载并解压 Maven
到 Maven 官网下载 binary zip 包,解压到固定目录,例如:
D:\dev\apache-maven-3.9.9
2. 配置 Maven 环境变量
新增系统变量:
变量名:MAVEN_HOME 变量值:D:\dev\apache-maven-3.9.9
在 Path 中新增:
%MAVEN_HOME%\bin
重新打开 PowerShell:
mvn -v
能看到 Maven 版本和 Java 版本,说明配置成功。
3. 配置 Maven 国内镜像
找到 Maven 配置文件:
D:\dev\apache-maven-3.9.9\conf\settings.xml
在 <mirrors> 中加入阿里云镜像:
<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>
这样下载依赖会快很多。
五、安装 Git
下载安装 Git for Windows 后,一路默认安装即可。
检查:
git --version
建议配置用户名和邮箱:
git config --global user.name "your-name" git config --global user.email "your-email@example.com"
拉取项目:
git clone 项目仓库地址
进入项目:
cd 后端项目目录
六、准备 MySQL
后端项目通常会在配置文件中写数据库连接信息。常见配置文件路径:
src/main/resources/application.yml src/main/resources/application-dev.yml src/main/resources/application-local.yml src/main/resources/application-prod.yml
本地开发一般使用 local 或 dev 配置。
方式一:本机安装 MySQL
安装 MySQL 8 后,记住 root 密码。
打开 DBeaver 或 MySQL 命令行,创建数据库:
CREATE DATABASE demo_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
方式二:用 Docker 启动 MySQL
如果安装了 Docker Desktop,可以创建一个 docker-compose.yml:
version: "3.9" services: mysql: image: mysql:8.0 container_name: demo-mysql environment: MYSQL_ROOT_PASSWORD: "123456" MYSQL_DATABASE: "demo_db" ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci volumes: mysql-data:
启动:
docker compose up -d mysql
查看状态:
docker compose ps
查看日志:
docker compose logs -f mysql
停止:
docker compose down
七、准备 Redis
方式一:用 Docker 启动 Redis
继续在 docker-compose.yml 中加入:
services: redis: image: redis:latest container_name: demo-redis ports: - "6379:6379" volumes: - redis-data:/data volumes: redis-data:
完整示例:
version: "3.9" services: mysql: image: mysql:8.0 container_name: demo-mysql environment: MYSQL_ROOT_PASSWORD: "123456" MYSQL_DATABASE: "demo_db" ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci redis: image: redis:latest container_name: demo-redis ports: - "6379:6379" volumes: - redis-data:/data volumes: mysql-data: redis-data:
启动:
docker compose up -d
方式二:Redis 设置密码
如果你的项目要求 Redis 密码,可以这样写:
redis: image: redis:latest container_name: demo-redis command: redis-server --requirepass 123456 ports: - "6379:6379"
后端配置里也要填同样的密码。
八、连接数据库
1. 使用 DBeaver 连接 MySQL
打开 DBeaver:
-
点击“新建连接”。
-
选择 MySQL。
-
填写连接信息:
Host:127.0.0.1 Port:3306 Database:demo_db Username:root Password:123456
-
点击“测试连接”。
-
成功后点击“完成”。
2. 常见连接失败原因
| 报错 | 原因 | 解决方式 |
|---|---|---|
| Access denied | 用户名或密码错误 | 检查 MySQL 密码 |
| Unknown database | 数据库不存在 | 先创建数据库 |
| Connection refused | MySQL 没启动 | 启动 MySQL 或 Docker 容器 |
| Public Key Retrieval is not allowed | MySQL 8 认证问题 | JDBC URL 加 allowPublicKeyRetrieval=true |
| Communications link failure | 网络或端口问题 | 检查 host、port、防火墙 |
九、修改后端配置文件
找到本地配置文件,例如:
src/main/resources/application-local.yml
常见配置如下:
server: port: 8080 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/demo_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver data: redis: host: 127.0.0.1 port: 6379 database: 0 password: ""
如果 Redis 有密码:
spring: data: redis: password: "123456"
注意三点:
-
数据库名要和你创建的数据库一致。
-
MySQL 密码要和本机或 Docker 中的密码一致。
-
Redis 如果没有密码,配置里就留空字符串。
十、用 IDEA 启动后端项目
1. 打开项目
打开 IntelliJ IDEA:
File -> Open -> 选择后端项目根目录
如果项目根目录下有 pom.xml,IDEA 会自动识别为 Maven 项目。
2. 等待 Maven 下载依赖
第一次打开项目会下载依赖,时间可能较长。建议确认 Maven 使用了国内镜像。
如果没有自动加载:
右侧 Maven 面板 -> Reload All Maven Projects
3. 设置 JDK
进入:
File -> Project Structure -> Project
设置:
SDK:JDK 17 Language level:17
4. 找到启动类
Spring Boot 启动类一般长这样:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
右键启动类,点击:
Run 'DemoApplication'
5. 指定运行环境
如果项目区分 dev、local、prod 环境,需要指定 profile。
进入:
Run -> Edit Configurations
在 VM options 中加入:
-Dspring.profiles.active=local
或者在 Environment variables 中加入:
SPRING_PROFILES_ACTIVE=local
启动成功时,控制台一般会出现:
Tomcat started on port 8080 Started DemoApplication
十一、用命令行启动后端项目
进入项目根目录:
cd D:\project\demo-backend
编译:
mvn clean compile
启动:
mvn spring-boot:run "-Dspring-boot.run.arguments=--spring.profiles.active=local"
如果你的 Maven 命令不识别引号,可以换成:
mvn spring-boot:run -Dspring-boot.run.arguments="--spring.profiles.active=local"
浏览器访问:
http://127.0.0.1:8080
十二、启动前端项目
如果项目包含前端,例如 admin-web,一般步骤如下:
cd D:\project\demo-admin-web
安装依赖:
npm install
或:
pnpm install
或:
yarn install
启动:
npm run dev
前端项目一般需要配置后端代理,常见文件:
vite.config.ts src/config/proxy.ts .env.development
示例:
server: {
port: 9000,
proxy: {
"/api": {
target: "http://127.0.0.1:8080",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, "")
}
}
}
然后前端请求写:
/api/xxx
Vite 会转发到:
http://127.0.0.1:8080/xxx
十三、后端打包
进入后端项目根目录:
cd D:\project\demo-backend
普通打包:
mvn clean package
跳过测试打包:
mvn clean package -DskipTests
打包成功后,一般会在 target 目录生成 jar:
target/demo-backend-1.0.0.jar
本地运行 jar:
java -jar target/demo-backend-1.0.0.jar
指定环境:
java -Dspring.profiles.active=prod -jar target/demo-backend-1.0.0.jar
指定端口:
java -Dserver.port=8080 -Dspring.profiles.active=prod -jar target/demo-backend-1.0.0.jar
十四、前端打包
进入前端项目根目录:
cd D:\project\demo-admin-web
打包:
npm run build
或:
pnpm build
打包成功后,一般会生成:
dist
部署前端时,通常把 dist 上传到服务器的 Nginx 静态目录。
十五、部署后端到 Linux 服务器
假设服务器目录是:
/opt/demo/backend
1. 上传 jar
本地打包后,把 jar 上传到服务器:
/opt/demo/backend/demo-backend.jar
可以用 FinalShell、Xftp、scp 上传。
scp 示例:
scp target/demo-backend-1.0.0.jar root@服务器IP:/opt/demo/backend/demo-backend.jar
2. 准备生产配置
生产环境建议不要把数据库密码硬编码在 jar 里,可以放在外部配置文件:
/opt/demo/backend/application-prod.yml
示例:
server: port: 8080 spring: datasource: url: jdbc:mysql://127.0.0.1:3306/demo_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false username: demo_user password: 请替换为生产密码 data: redis: host: 127.0.0.1 port: 6379 password: 请替换为生产密码
启动时指定外部配置:
java -jar demo-backend.jar \ --spring.profiles.active=prod \ --spring.config.additional-location=file:/opt/demo/backend/application-prod.yml
十六、Linux 后台启动
1. nohup 方式
进入目录:
cd /opt/demo/backend
启动:
nohup java -Xms512m -Xmx1024m \ -Dspring.profiles.active=prod \ -jar demo-backend.jar \ > app.log 2>&1 &
查看进程:
ps -ef | grep demo-backend.jar
查看日志:
tail -f app.log
停止:
ps -ef | grep demo-backend.jar kill -15 进程ID
如果正常停止失败,再使用:
kill -9 进程ID
2. 编写启动脚本
创建 start.sh:
#!/bin/bash APP_NAME=demo-backend.jar APP_DIR=/opt/demo/backend LOG_FILE=$APP_DIR/app.log cd $APP_DIR nohup java -Xms512m -Xmx1024m \ -Dspring.profiles.active=prod \ -jar $APP_NAME \ > $LOG_FILE 2>&1 & echo "应用已启动"
授权:
chmod +x start.sh
启动:
./start.sh
3. 编写停止脚本
创建 stop.sh:
#!/bin/bash
APP_NAME=demo-backend.jar
PID=$(ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}')
if [ -z "$PID" ]; then
echo "应用未运行"
else
kill -15 $PID
echo "已停止应用,PID=$PID"
fi
授权:
chmod +x stop.sh
停止:
./stop.sh
4. 编写重启脚本
创建 restart.sh:
#!/bin/bash
APP_NAME=demo-backend.jar
APP_DIR=/opt/demo/backend
LOG_FILE=$APP_DIR/app.log
PID=$(ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
echo "停止应用,PID=$PID"
kill -15 $PID
sleep 5
fi
cd $APP_DIR
nohup java -Xms512m -Xmx1024m \
-Dspring.profiles.active=prod \
-jar $APP_NAME \
> $LOG_FILE 2>&1 &
echo "应用已重启"
授权并执行:
chmod +x restart.sh ./restart.sh
十七、使用 systemd 管理后端服务
生产环境更推荐用 systemd 管理服务。
创建服务文件:
sudo vim /etc/systemd/system/demo-backend.service
写入:
[Unit] Description=Demo Backend Service After=network.target [Service] Type=simple WorkingDirectory=/opt/demo/backend ExecStart=/usr/bin/java -Xms512m -Xmx1024m -Dspring.profiles.active=prod -jar /opt/demo/backend/demo-backend.jar Restart=always RestartSec=5 User=root [Install] WantedBy=multi-user.target
重新加载:
sudo systemctl daemon-reload
启动:
sudo systemctl start demo-backend
停止:
sudo systemctl stop demo-backend
重启:
sudo systemctl restart demo-backend
查看状态:
sudo systemctl status demo-backend
查看日志:
journalctl -u demo-backend -f
设置开机自启:
sudo systemctl enable demo-backend
十八、部署前端到 Nginx
假设前端打包后生成 dist,服务器目录:
/opt/demo/admin-web
上传 dist 内容到:
/opt/demo/admin-web/dist
Nginx 配置示例:
server {
listen 80;
server_name example.com;
root /opt/demo/admin-web/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
检查 Nginx 配置:
nginx -t
重载 Nginx:
nginx -s reload
如果使用 systemd:
sudo systemctl reload nginx
十九、Docker 部署后端
如果想把后端也做成 Docker 镜像,可以写 Dockerfile:
FROM eclipse-temurin:17-jre WORKDIR /app COPY target/demo-backend-1.0.0.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "app.jar"]
构建镜像:
docker build -t demo-backend:1.0.0 .
运行容器:
docker run -d \ --name demo-backend \ -p 8080:8080 \ demo-backend:1.0.0
查看日志:
docker logs -f demo-backend
重启:
docker restart demo-backend
停止:
docker stop demo-backend
删除:
docker rm demo-backend
二十、常见问题排查
1. java 命令找不到
说明 JDK 环境变量没配好。
检查:
java -version echo $env:JAVA_HOME
2. mvn 命令找不到
说明 Maven 没加入 Path。
检查:
mvn -v echo $env:MAVEN_HOME
3. Maven 下载依赖很慢
配置国内镜像,或者检查网络代理。
4. 数据库连接失败
重点检查:
-
MySQL 是否启动。
-
数据库名是否存在。
-
用户名密码是否正确。
-
端口是否为
3306。 -
JDBC URL 是否写错。
5. Redis 连接失败
重点检查:
-
Redis 是否启动。
-
端口是否为
6379。 -
是否设置了密码。
-
配置文件密码是否一致。
6. 端口被占用
Windows 查看端口:
netstat -ano | findstr ":8080"
Linux 查看端口:
lsof -i:8080
或者:
netstat -tunlp | grep 8080
7. 打包失败
常见原因:
-
JDK 版本不对。
-
Maven 依赖没下载完整。
-
测试用例失败。
-
配置文件格式错误。
可以先跳过测试:
mvn clean package -DskipTests
8. 服务器启动后访问不到
检查:
-
后端进程是否存在。
-
服务器防火墙是否放行端口。
-
云服务器安全组是否放行端口。
-
Nginx 代理是否正确。
-
后端是否绑定到
127.0.0.1导致外部无法访问。
二十一、推荐的新手启动顺序
第一次不要同时做太多事,按这个顺序来:
-
安装 JDK。
-
安装 Maven。
-
安装 Git。
-
安装 Docker Desktop。
-
用 Docker 启动 MySQL 和 Redis。
-
用 DBeaver 连接 MySQL。
-
创建本地数据库。
-
修改后端
application-local.yml。 -
IDEA 打开后端项目。
-
设置 JDK 17。
-
启动后端。
-
浏览器访问后端首页或健康检查地址。
-
启动前端项目。
-
确认前端代理到本地后端。
-
完成本地联调。
-
Maven 打 jar 包。
-
上传 jar 到服务器。
-
用
nohup或systemd启动。 -
配置 Nginx。
-
测试线上访问。
二十二、最后总结
前端同学刚接触后端时,不需要一开始就理解所有 Java 语法和框架细节。先掌握这条主线就够了:
安装 JDK 和 Maven | 启动 MySQL 和 Redis | 修改 application 配置 | 启动 Spring Boot | 打包 jar | 上传服务器 | 用 nohup / systemd 启动 | 用 Nginx 代理访问
只要这条链路跑通,你就已经具备了后端项目本地开发、联调、打包和部署的基础能力。

137

被折叠的 条评论
为什么被折叠?



