Skip to content

Giai đoạn 4 – Frameworks và Ứng dụng Web (3–4 tháng)

Spring Boot, Spring Core và Spring Data JPA

  • Spring Core: Dependency injection (@Bean, @Autowired), IoC container.
  • Spring Boot: Tự động cấu hình, starters (spring-boot-starter-web, spring-boot-starter-data-jpa), application.yml.
  • Spring Data JPA: Repositories (CrudRepository, JpaRepository), truy vấn với @Query, phân trang.
  • Ví dụ: Tạo REST endpoints để quản lý tác vụ (CRUD) trong ứng dụng tác vụ.

Spring Security (JWT, OAuth2)

  • Khái niệm: Xác thực, phân quyền, bộ lọc bảo mật.
  • JWT: Tạo và xác thực token, sử dụng JwtAuthenticationFilter.
  • OAuth2: Cấu hình Resource Server, tích hợp với nhà cung cấp (ví dụ: Google).
  • Ví dụ: Bảo vệ các endpoints tác vụ với JWT và vai trò (ADMIN, USER).

Kiểm thử đơn vị và tích hợp

  • Kiểm thử đơn vị: JUnit 5, Mockito (@Mock, @InjectMocks), kiểm thử logic nghiệp vụ.
  • Kiểm thử tích hợp: @SpringBootTest, @WebMvcTest, cơ sở dữ liệu H2 để kiểm thử.
  • Testcontainers: Kiểm thử với PostgreSQL trong container Docker.
  • Ví dụ: Kiểm thử các dịch vụ và endpoints của ứng dụng tác vụ.

RESTful APIs và tài liệu với Swagger

  • REST: Các phương thức HTTP, mã trạng thái, nguyên tắc RESTful.
  • Spring REST: @RestController, @RequestMapping, @PathVariable.
  • Swagger: Cấu hình springdoc-openapi, chú thích với @Operation.
  • Ví dụ: Tài liệu hóa các endpoints của ứng dụng tác vụ với Swagger UI.

Giới thiệu về GraphQL

  • Khái niệm: Queries, mutations, schema.
  • Spring Boot với GraphQL: Thiết lập với spring-boot-starter-graphql.
  • Ví dụ: Tạo một GraphQL query để liệt kê các tác vụ theo trạng thái.

Tích hợp Frontend cơ bản

  • Thymeleaf: Mẫu để hiển thị các trang HTML với Spring Boot.
  • Ví dụ: Tạo giao diện web đơn giản để xem và tạo tác vụ.

Công cụ xây dựng: Maven và Gradle

  • Maven: Cấu trúc của pom.xml, quản lý phụ thuộc, plugin.
  • Gradle: Tệp build.gradle, các tác vụ, quản lý phụ thuộc.
  • Ví dụ: Cấu hình ứng dụng tác vụ với Maven và Gradle.

Triển khai dự án

  • Nền tảng: Railway, Heroku, AWS (Elastic Beanstalk).
  • Các bước: Đóng gói thành JAR, cấu hình CI/CD với GitHub Actions.
  • Ví dụ: Triển khai ứng dụng tác vụ trên Railway với PostgreSQL.

Dự án cuối kỳ

Hệ thống quản lý tác vụ
- Cơ sở dữ liệu: Bảng Task (tiêu đề, mô tả, trạng thái) và User (quan hệ 1:N).
- Java: REST API với Spring Boot, Spring Data JPA cho CRUD.
- Bảo mật: Xác thực JWT, vai trò (ADMIN, USER).
- Kiểm thử: Kiểm thử đơn vị (dịch vụ) và kiểm thử tích hợp (endpoints với Testcontainers).
- Tài liệu: Swagger UI với mô tả các endpoints.
- Tùy chọn: Thêm GraphQL query để liệt kê tác vụ và giao diện Thymeleaf để tương tác.
- Git: Commit cho mỗi tính năng (ví dụ: feature/rest-api, feature/security).
- Đăng lên GitHub với README (cấu hình, endpoints, triển khai).

Tài nguyên