使用Maven构建Spring Boot后端项目的步骤通常包括以下几个部分:
环境准备:
创建项目结构:
spring init
命令初始化一个基本的 Spring Boot 项目。配置pom.xml文件:
pom.xml
文件,并配置项目的依赖项。spring-boot-starter-web
用于 Web 开发。<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.examplegroupId>
<artifactId>my-spring-boot-appartifactId>
<version>1.0-SNAPSHOTversion>
<packaging>jarpackaging>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>3.1.2version>
<relativePath/>
parent>
<properties>
<java.version>17java.version>
<spring-boot.version>3.1.2spring-boot.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-jpaartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-cacheartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<optional>trueoptional>
dependency>
<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-boot-starterartifactId>
<version>3.0.0version>
dependency>
<dependency>
<groupId>commons-langgroupId>
<artifactId>commons-langartifactId>
<version>2.6version>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
src/
|-- main/
| |-- java/
| | |-- com.example.myapp/
| | | |-- application/ # 应用程序启动类
| | | |-- config/ # 配置类
| | | | |-- AppConfig.java # Spring Boot 配置类
| | | | |-- DatabaseConfig.java # 数据库配置类
| | | | |-- CacheConfig.java # 缓存配置类
| | | |-- controllers/ # 控制器层
| | | | |-- MyController.java # RESTful 控制器
| | | |-- dtos/ # 数据传输对象 (DTOs)
| | | | |-- UserDto.java # 用户 DTO
| | | |-- entities/ # 实体类
| | | | |-- User.java # 用户实体类
| | | |-- repositories/ # 数据访问层 (DAOs)
| | | | |-- UserRepository.java # 用户 Repository
| | | |-- services/ # 业务逻辑层
| | | | |-- UserService.java # 用户服务接口和服务实现
| | | |-- utils/ # 工具类
| | | | |-- StringUtils.java # 字符串工具类
| | | | |-- DateUtils.java # 日期工具类
| | | |-- security/ # 安全性相关类
| | | | |-- SecurityConfig.java # 安全配置类
| | | | |-- JwtTokenProvider.java # JWT Token 处理类
| | | |-- exceptions/ # 自定义异常处理
| | | | |-- CustomException.java # 自定义异常类
| | | | |-- ExceptionHandler.java # 异常处理器
| | | |-- enums/ # 枚举类型
| | | | |-- Status.java # 状态枚举
| | | |-- filters/ # 过滤器
| | | | |-- CustomFilter.java # 自定义过滤器
| | | |-- interceptors/ # 拦截器
| | | | |-- LoggingInterceptor.java # 日志记录拦截器
| | | |-- listeners/ # 监听器
| | | | |-- ApplicationListener.java # 应用监听器
| | | |-- tasks/ # 定时任务
| | | | |-- ScheduledTasks.java # 定时任务类
| | |-- resources/
| | | |-- application.properties # 应用配置文件
| | | |-- application.yml # YAML 格式的配置文件
| | | |-- messages.properties # 国际化消息资源文件
| | | |-- static/ # 静态资源文件
| | | | |-- css/
| | | | |-- js/
| | | | |-- images/
| | | |-- templates/ # Thymeleaf 或其他模板引擎模板
| | | | |-- index.html # 主页模板
| | | |-- logs/ # 日志文件
| | |-- sql/ # SQL 脚本
| | | |-- schema.sql # 数据库表结构脚本
| | | |-- data.sql # 初始数据脚本
|-- test/
| |-- java/
| | |-- com.example.myapp/
| | | |-- controllers/ # 控制器测试
| | | | |-- MyControllerTest.java
| | | |-- services/ # 服务层测试
| | | | |-- UserServiceTest.java
| | | |-- repositories/ # 存储层测试
| | | | |-- UserRepositoryTest.java
| | | |-- utils/ # 工具类测试
| | | | |-- StringUtilsTest.java
| | | |-- config/ # 配置类测试
| | | | |-- AppConfigTest.java
| | | |-- security/ # 安全相关测试
| | | | |-- SecurityConfigTest.java
| | | |-- exceptions/ # 异常处理测试
| | | | |-- ExceptionHandlerTest.java
打包项目:
mvn clean package
运行项目:
target
) 中找到生成的 JAR 文件。java -jar target/your-project-name.jar
验证应用:
常见组件
数据库驱动
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<scope>runtimescope>
dependency>
<dependency>
<groupId>org.postgresqlgroupId>
<artifactId>postgresqlartifactId>
<scope>runtimescope>
dependency>
<dependency>
<groupId>com.oracle.database.jdbcgroupId>
<artifactId>ojdbc10artifactId>
<scope>runtimescope>
dependency>
缓存组件
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redisartifactId>
dependency>
<dependency>
<groupId>com.github.ben-manes.caffeinegroupId>
<artifactId>caffeineartifactId>
<version>3.1.5version>
dependency>
<dependency>
<groupId>org.ehcachegroupId>
<artifactId>ehcacheartifactId>
<version>3.9.6version>
dependency>
接口文档组件
<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-boot-starterartifactId>
<version>3.0.0version>
dependency>
.
9. 相关文献参考
pom.xml文件格式说明
springboot官网
maven中心仓库
spring initialize 官网