Skip to content

第四阶段 – 框架与Web应用(3-4个月)

Spring Boot、Spring Core 和 Spring Data JPA

  • Spring Core: 依赖注入 (@Bean, @Autowired),IoC容器。
  • Spring Boot: 自动配置,starters (spring-boot-starter-web, spring-boot-starter-data-jpa),application.yml
  • Spring Data JPA: 仓储 (CrudRepository, JpaRepository),使用 @Query 进行查询,分页。
  • 示例: 在任务应用中创建 REST endpoints 用于管理任务 (CRUD)。

Spring Security (JWT, OAuth2)

  • 概念: 认证、授权、安全过滤器。
  • JWT: 创建和验证 tokens,使用 JwtAuthenticationFilter
  • OAuth2: 配置 Resource Server,与提供商集成(例如 Google)。
  • 示例: 使用 JWT 和 roles (ADMIN, USER) 保护任务 endpoints。

单元测试与集成测试

  • 单元测试: JUnit 5, Mockito (@Mock, @InjectMocks),测试业务逻辑。
  • 集成测试: @SpringBootTest, @WebMvcTest,使用 H2 数据库进行测试。
  • Testcontainers: 在 Docker 容器中使用 PostgreSQL 进行测试。
  • 示例: 测试任务应用的服务和 endpoints。

RESTful APIs 与 Swagger 文档

  • REST: HTTP 方法、状态码、RESTful 原则。
  • Spring REST: @RestController, @RequestMapping, @PathVariable
  • Swagger: 配置 springdoc-openapi,使用 @Operation 注解。
  • 示例: 使用 Swagger UI 文档化任务应用 endpoints。

GraphQL 介绍

  • 概念: Queries, mutations, schema。
  • Spring Boot 与 GraphQL: 使用 spring-boot-starter-graphql 进行设置。
  • 示例: 创建一个 GraphQL query 以按状态列出任务。

基础前端集成

  • Thymeleaf: 使用 Spring Boot 渲染 HTML 页面模板。
  • 示例: 创建一个简单的 Web 界面以查看和创建任务。

构建工具:Maven 和 Gradle

  • Maven: pom.xml 结构,依赖,插件。
  • Gradle: build.gradle 文件,任务,依赖管理。
  • 示例: 使用 Maven 和 Gradle 配置任务应用。

项目部署

  • 平台: Railway, Heroku, AWS (Elastic Beanstalk)。
  • 步骤: 打包为 JAR,配置 CI/CD 使用 GitHub Actions。
  • 示例: 在 Railway 上部署任务应用,结合 PostgreSQL。

最终项目

任务管理系统
- 数据库: Task(标题、描述、状态)和 User 表(1:N 关系)。
- Java: 使用 Spring Boot 和 Spring Data JPA 实现 REST API 进行 CRUD。
- 安全: JWT 认证,roles (ADMIN, USER)。
- 测试: 单元测试(服务)和集成测试(使用 Testcontainers 测试 endpoints)。
- 文档: 使用 Swagger UI 提供 endpoints 描述。
- 可选: 添加 GraphQL query 以列出任务,以及 Thymeleaf 界面用于交互。
- Git: 按功能提交(例如,feature/rest-api, feature/security)。
- 发布: 在 GitHub 上发布,附带 README(设置、endpoints、部署)。

资源