2.1 开发环境准备

系统要求

组件 最低版本 推荐版本
JDK 8 17+
Maven 3.6+ 3.8+
Gradle 6.8+ 7.5+
IDE 任意 IntelliJ IDEA

JDK安装与配置

Windows环境

  1. 下载JDK

    • 访问Oracle官网或OpenJDK官网
    • 下载对应版本的JDK
  2. 安装JDK

    # 验证安装
    java -version
    javac -version
    
    1. 配置环境变量

      # 设置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

安装与基本配置

  1. 下载安装

    • 访问JetBrains官网
    • 下载Community版本(免费)或Ultimate版本
  2. 基本配置

    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
    
  3. 插件推荐

    • 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(推荐)

在线创建

  1. 访问官网

  2. 配置选项

    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
    
  3. 添加依赖

    • 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>

功能特性

  1. 自动重启

    • 监控classpath变化
    • 自动重启应用
  2. LiveReload

    • 浏览器自动刷新
    • 需要安装浏览器插件
  3. 配置属性 “`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调试

  1. 设置断点

    • 点击行号左侧设置断点
    • 条件断点:右键断点设置条件
  2. 调试模式启动

    • 点击Debug按钮
    • 或使用快捷键Shift + F9
  3. 调试快捷键

    • 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开发环境的完整搭建过程,包括:

  1. 基础环境:JDK、Maven/Gradle的安装配置
  2. 开发工具:IDE选择与配置、插件推荐
  3. 项目创建:多种项目创建方式
  4. 开发工具:DevTools、Lombok等提效工具
  5. 数据库环境:MySQL、H2数据库配置
  6. 版本控制:Git配置和最佳实践
  7. 构建运行:Maven/Gradle命令使用
  8. 调试技巧:本地调试、远程调试方法

掌握这些环境配置和工具使用,将为后续的Spring Boot开发打下坚实的基础。