2.1 开发环境准备
系统要求
组件 | 最低版本 | 推荐版本 |
---|---|---|
JDK | 8 | 17+ |
Maven | 3.6+ | 3.8+ |
Gradle | 6.8+ | 7.5+ |
IDE | 任意 | IntelliJ IDEA |
JDK安装与配置
Windows环境
下载JDK
- 访问Oracle官网或OpenJDK官网
- 下载对应版本的JDK
安装JDK
# 验证安装 java -version javac -version
配置环境变量
# 设置JAVA_HOME set JAVA_HOME=C:\Program Files\Java\jdk-17 # 添加到PATH set PATH=%JAVA_HOME%\bin;%PATH%
Linux/macOS环境
# 使用包管理器安装
# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-17-jdk
# CentOS/RHEL
sudo yum install java-17-openjdk-devel
# macOS (使用Homebrew)
brew install openjdk@17
# 配置环境变量
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Maven安装与配置
下载安装
# 下载Maven
wget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
# 解压
tar -xzf apache-maven-3.8.6-bin.tar.gz
sudo mv apache-maven-3.8.6 /opt/maven
# 配置环境变量
echo 'export MAVEN_HOME=/opt/maven' >> ~/.bashrc
echo 'export PATH=$MAVEN_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 验证安装
mvn -version
Maven配置文件
settings.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库路径 -->
<localRepository>/path/to/local/repo</localRepository>
<!-- 镜像配置 -->
<mirrors>
<mirror>
<id>aliyun</id>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<!-- 配置文件 -->
<profiles>
<profile>
<id>jdk-17</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>17</jdk>
</activation>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>
2.2 IDE选择与配置
IntelliJ IDEA
安装与基本配置
下载安装
- 访问JetBrains官网
- 下载Community版本(免费)或Ultimate版本
基本配置
File -> Settings -> Build -> Build Tools -> Maven - Maven home directory: /path/to/maven - User settings file: /path/to/settings.xml - Local repository: /path/to/local/repo
插件推荐
- Spring Boot Helper:Spring Boot开发助手
- Lombok:简化Java代码
- MyBatis Log Plugin:MyBatis日志插件
- Rainbow Brackets:彩虹括号
- GitToolBox:Git工具增强
IDEA快捷键
功能 | Windows/Linux | macOS |
---|---|---|
快速修复 | Alt + Enter | ⌥ + ⏎ |
代码格式化 | Ctrl + Alt + L | ⌘ + ⌥ + L |
优化导入 | Ctrl + Alt + O | ⌘ + ⌥ + O |
查找类 | Ctrl + N | ⌘ + O |
查找文件 | Ctrl + Shift + N | ⌘ + ⇧ + O |
全局搜索 | Ctrl + Shift + F | ⌘ + ⇧ + F |
Visual Studio Code
扩展推荐
{
"recommendations": [
"vscjava.vscode-java-pack",
"pivotal.vscode-spring-boot",
"vscjava.vscode-spring-initializr",
"vscjava.vscode-spring-boot-dashboard",
"redhat.java",
"vscjava.vscode-maven"
]
}
VS Code配置
{
"java.home": "/path/to/jdk",
"maven.executable.path": "/path/to/maven/bin/mvn",
"java.configuration.runtimes": [
{
"name": "JavaSE-17",
"path": "/path/to/jdk-17",
"default": true
}
]
}
2.3 项目创建方式
Spring Initializr(推荐)
在线创建
访问官网
- 打开 https://start.spring.io/
- 选择项目配置
配置选项
Project: Maven Project Language: Java Spring Boot: 3.1.5 Group: com.example Artifact: demo Name: demo Description: Demo project for Spring Boot Package name: com.example.demo Packaging: Jar Java: 17
添加依赖
- Spring Web
- Spring Data JPA
- MySQL Driver
- Spring Boot DevTools
IDEA中创建
File -> New -> Project -> Spring Initializr
- Server URL: https://start.spring.io
- 填写项目信息
- 选择依赖
- 创建项目
命令行创建
# 使用Spring Boot CLI
spring init --dependencies=web,data-jpa,mysql,devtools demo
# 使用curl
curl https://start.spring.io/starter.zip \
-d dependencies=web,data-jpa,mysql,devtools \
-d name=demo \
-d artifactId=demo \
-d groupId=com.example \
-d packageName=com.example.demo \
-o demo.zip
Maven Archetype
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=demo \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
手动创建
项目结构
demo/
├── pom.xml
└── src/
├── main/
│ ├── java/
│ │ └── com/example/demo/
│ │ └── DemoApplication.java
│ └── resources/
│ └── application.properties
└── test/
└── java/
└── com/example/demo/
└── DemoApplicationTests.java
pom.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<project 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
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.5</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.4 开发工具配置
Spring Boot DevTools
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
功能特性
自动重启
- 监控classpath变化
- 自动重启应用
LiveReload
- 浏览器自动刷新
- 需要安装浏览器插件
配置属性 “`properties
禁用重启
spring.devtools.restart.enabled=false
排除监控目录
spring.devtools.restart.exclude=static/,public/
触发文件
spring.devtools.restart.trigger-file=.reloadtrigger
### Lombok配置
#### 添加依赖
```xml
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
常用注解
@Data // 生成getter/setter/toString/equals/hashCode
@NoArgsConstructor // 无参构造器
@AllArgsConstructor // 全参构造器
@Builder // 建造者模式
@Slf4j // 日志
@Value // 不可变类
代码质量工具
Checkstyle配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
</configuration>
</plugin>
SpotBugs配置
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.7.3.0</version>
</plugin>
2.5 数据库环境
MySQL安装配置
Docker方式(推荐)
# 拉取MySQL镜像
docker pull mysql:8.0
# 运行MySQL容器
docker run --name mysql-dev \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=demo \
-p 3306:3306 \
-d mysql:8.0
# 连接测试
mysql -h localhost -P 3306 -u root -p
传统安装
# Ubuntu/Debian
sudo apt update
sudo apt install mysql-server
# CentOS/RHEL
sudo yum install mysql-server
# 启动服务
sudo systemctl start mysql
sudo systemctl enable mysql
# 安全配置
sudo mysql_secure_installation
H2数据库(开发测试)
添加依赖
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
配置
# H2内存数据库
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# H2控制台
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
2.6 版本控制
Git配置
全局配置
# 配置用户信息
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 配置编辑器
git config --global core.editor "code --wait"
# 配置换行符
git config --global core.autocrlf input # Linux/macOS
git config --global core.autocrlf true # Windows
.gitignore文件
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs
hs_err_pid*
# IDE
.idea/
*.iws
*.iml
*.ipr
.vscode/
# Maven
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar
# Gradle
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
# Spring Boot
*.pid
*.pid.lock
*.pid.tmp
# Application properties
application-local.properties
application-dev.properties
application-prod.properties
2.7 构建和运行
Maven命令
# 编译
mvn compile
# 测试
mvn test
# 打包
mvn package
# 清理
mvn clean
# 安装到本地仓库
mvn install
# 跳过测试打包
mvn package -DskipTests
# 运行Spring Boot应用
mvn spring-boot:run
# 指定配置文件运行
mvn spring-boot:run -Dspring-boot.run.profiles=dev
Gradle命令
# 编译
./gradlew compileJava
# 测试
./gradlew test
# 构建
./gradlew build
# 清理
./gradlew clean
# 运行应用
./gradlew bootRun
# 指定配置文件运行
./gradlew bootRun --args='--spring.profiles.active=dev'
JAR包运行
# 打包后运行
java -jar target/demo-0.0.1-SNAPSHOT.jar
# 指定配置文件
java -jar target/demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
# 指定JVM参数
java -Xms512m -Xmx1024m -jar target/demo-0.0.1-SNAPSHOT.jar
# 后台运行
nohup java -jar target/demo-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
2.8 调试技巧
IDEA调试
设置断点
- 点击行号左侧设置断点
- 条件断点:右键断点设置条件
调试模式启动
- 点击Debug按钮
- 或使用快捷键Shift + F9
调试快捷键
- F8:单步跳过
- F7:单步进入
- Shift + F8:单步跳出
- F9:继续执行
远程调试
# 启动应用时添加调试参数
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 \
-jar target/demo-0.0.1-SNAPSHOT.jar
# IDEA中配置远程调试
# Run -> Edit Configurations -> + -> Remote JVM Debug
# Host: localhost
# Port: 5005
日志调试
# 日志级别配置
logging.level.com.example=DEBUG
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate.SQL=DEBUG
# 日志输出到文件
logging.file.name=app.log
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
2.9 性能监控工具
Spring Boot Actuator
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
# 开启所有端点
management.endpoints.web.exposure.include=*
# 显示健康检查详情
management.endpoint.health.show-details=always
JProfiler
- Java性能分析工具
- 内存分析、CPU分析、线程分析
VisualVM
- 免费的Java性能分析工具
- JDK自带工具
2.10 常见问题解决
端口占用
# 查看端口占用
netstat -ano | findstr :8080 # Windows
lsof -i :8080 # Linux/macOS
# 杀死进程
taskkill /PID <PID> /F # Windows
kill -9 <PID> # Linux/macOS
依赖冲突
# 查看依赖树
mvn dependency:tree
# 排除依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
编码问题
# Maven编译编码
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
总结
本章介绍了Spring Boot开发环境的完整搭建过程,包括:
- 基础环境:JDK、Maven/Gradle的安装配置
- 开发工具:IDE选择与配置、插件推荐
- 项目创建:多种项目创建方式
- 开发工具:DevTools、Lombok等提效工具
- 数据库环境:MySQL、H2数据库配置
- 版本控制:Git配置和最佳实践
- 构建运行:Maven/Gradle命令使用
- 调试技巧:本地调试、远程调试方法
掌握这些环境配置和工具使用,将为后续的Spring Boot开发打下坚实的基础。