第四阶段 – 框架与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、部署)。