Khoá Backend toàn từ cơ bản đến chuyên sâu (kèm riêng)

Khóa học Backend Spring Boot Hiện Đại giúp bạn làm chủ việc phát triển ứng dụng backend với Spring Boot và các công nghệ mới nhất trong ngành.
Programming FullhouseDev Premium
Tác giả FullhouseDev
1000+ Học viên
4.8
Mục tiêu của khóa học
  • Nắm vững kiến thức nền tảng và nâng cao về Spring Boot
  • Thành thạo việc xây dựng REST APIs và GraphQL với Spring
  • Hiểu và áp dụng được Microservices Architecture trong thực tế
  • Tích hợp AI/ML và xây dựng hệ thống RAG với Spring Boot
  • Triển khai ứng dụng với Docker và Cloud platforms
  • Thực hành với các dự án thực tế theo chuẩn công nghiệp
Đối tượng học viên
  • Lập trình viên muốn học Backend Development với Spring Boot
  • Developers muốn cập nhật kiến thức về công nghệ mới
  • Java developers muốn chuyên sâu về Spring Boot Backend
  • Sinh viên CNTT muốn học thêm kỹ năng thực tế
  • Người đi làm muốn chuyển sang Backend Spring Boot
Sự khác biệt khoá học
  • Chương trình cập nhật theo xu hướng công nghệ mới nhất
  • Tập trung vào thực hành với nhiều dự án thực tế
  • Giảng viên có nhiều năm kinh nghiệm trong ngành
  • Hỗ trợ học viên 24/7 qua group chat riêng
  • Tài liệu đầy đủ và cập nhật liên tục
  • Cơ hội thực tập và việc làm sau khóa học

Nội dung chương trình học

Phần 1: Nền tảng Java ( 8 buổi )
Bài 1: Làm quen với Spring Boot

Giới thiệu về Spring Boot và các thành phần cốt lõi

Cài đặt môi trường phát triển (JDK, IDE, Maven/Gradle)

Tạo project Spring Boot đầu tiên

Cấu trúc project và các file cấu hình quan trọng

Dependency Injection và Inversion of Control trong Spring

Bài 2: Spring Boot Configuration

Cấu hình ứng dụng với application.properties/yaml

Profile và môi trường phát triển

Logging và cách cấu hình log

Exception handling và validation

Unit testing cơ bản với JUnit 5

Bài 3: Java 17 - Tính năng mới

Records và cách sử dụng

Pattern matching cho instanceof

Switch expressions

Text blocks và String templates

Sealed classes và interfaces

Bài 4: Lập trình hàm với Java

Lambda expressions và functional interfaces

Method references

Stream API cơ bản và nâng cao

Optional để xử lý null

Collectors và grouping operations

Bài 5: Lập trình bất đồng bộ

CompletableFuture và promises

Parallel streams

Virtual threads (Project Loom)

Reactive programming với Project Reactor

Best practices khi xử lý bất đồng bộ

Bài 6: Module System & Project Structure

Java Platform Module System (JPMS)

Tạo và quản lý modules

Dependency management với Maven/Gradle

Clean architecture trong Spring Boot

Tổ chức code theo domain-driven design

Phần 2: Học thiết kế lưu đồ ERD và Thiết kế cơ sở dữ liệu
Buổi 9: Ôn các mối quan hệ 1:1-1:n- n:n và lưu đồ ERD và cách thiết kế lưu đồ thực thể

Nguyên tắc REST và best practices

Controllers và RequestMapping

Request parameters và path variables

Response entity và HTTP status codes

Exception handling trong REST APIs

Buổi:10: Sửa lưu đồ thực thể và thiết kế DB trong MySql

HATEOAS và hypermedia controls

Versioning APIs

Swagger/OpenAPI documentation

API testing với Postman

Integration testing cho REST APIs

Buổi 11:Chữa bài tập thiết kế DB, Tạo project non-jwt

Cấu hình Spring Security

Authentication và authorization

Form login và remember-me

Password encoding

Session management

Phần 3: Các kiến thức chuyên sâu về Web Service và Kiến thức về Controller
Buổi 12: Web Service và các cách để xây dựng 1 Web Service,cấu hình Spring Boot và 1 số khái niệm trong Maven Project

Giới thiệu về kiến trúc Microservices và các pattern cơ bản

So sánh Monolithic và Microservices

Các thách thức khi xây dựng Microservices

Thiết kế và phân tách domain services

Best practices trong thiết kế Microservices

Buổi 13: Phần học về Controller : @Controller, @RestController, @RequestMapping, @RequestParam, @RequestBody...v.v

Cài đặt và cấu hình Eureka Server

Đăng ký services với Eureka Client

Load balancing với Spring Cloud LoadBalancer

Health check và service registry

Xử lý lỗi và retry pattern

Buổi 14: 13 Best Practices For Restful API(P1)

Xây dựng Config Server tập trung

Quản lý cấu hình động với Git backend

Refresh scope và dynamic configuration

Mã hóa thông tin nhạy cảm

Versioning và rollback cấu hình

Buổi 15: 13 Best Practices For Restful API(P2),Tìm hiểu về HTTP Status Codes.

Circuit Breaker pattern với Resilience4j

Cấu hình fallback methods

Rate limiting và bulkhead

Xây dựng API Gateway với Spring Cloud Gateway

Routing và filtering requests

Buổi 16: Chạy demo hệ thống và giao Project-0(thiết kế DB cho ccar hệ thống)

Distributed tracing với Spring Cloud Sleuth

Tích hợp Zipkin Server

Theo dõi và phân tích request flow

Logging tập trung trong microservices

Monitoring và alerting

Phần 4: Xây dựng mô hình 3-Layer, MVC và áp dụng vào Project-1
Buổi 17: Học về cách xây dụng mô hình 3-Layer, MVC

JPA entities và annotations

Repository pattern

CRUD operations

Query methods

Native queries và JPQL

Buổi 18: Xây dựng mô hình 3-layer, MVC(P2), Hướng dẫn debug và tìm flow dự án

One-to-One relationships

One-to-Many relationships

Many-to-Many relationships

Cascade types

Fetch types và N+1 problem

Buổi 19: Học về Git, Git flow và Giao Project-1(sử dụng JDBC để làm chức năng tìm kiếm sản phẩm)

@Transactional annotation

Transaction propagation

Transaction isolation levels

Deadlocks và race conditions

Distributed transactions

Buổi 20: Review và sửa Project-1

MongoDB basics

Spring Data MongoDB

Document mapping

MongoDB queries

Indexing và performance

Buổi 21: Sửa Project-1,Modelmapper, Stream API

Redis caching

Cache strategies

Elasticsearch integration

Full-text search

Cache invalidation patterns

Buổi 22: Builder pattern, MapUtil, sử dụng Java Reflection
Phần 5: Quản lý và thao tác dữ liệu JPA, Spring Data JPA(chuyên sâu)
Buổi 23: Học về JPA(P1)

Giới thiệu về message broker và Apache Kafka

Cài đặt và cấu hình Kafka cluster

Kafka Producer và Consumer API

Topics, Partitions và Consumer Groups

Xử lý lỗi và retry trong Kafka

Buổi 24: Học về JPA(P2), Phân tách môi trường với Spring Profiles

Tích hợp Spring Cloud Stream

Xây dựng Producer và Consumer services

Message channels và bindings

Error handling và dead letter queues

Testing message-driven applications

Buổi 25: @OnetoMany, @ManyToMany, Fetch Type trong JPA

Event Sourcing pattern và implementation

Command Query Responsibility Segregation

Event store và event replay

Saga pattern cho distributed transactions

Optimistic concurrency control

Buổi 26: Hướng dẫn sử dụng và demo các hàm Persist,Merger,Remove trong JPA
Buổi 27: Chuyển đổi Project-1 qua JPA
Buổi 28: Làm các chức năng CRUD bằng JPA
Buổi 29: Học về Spring Data JPA, Cú pháp và Cách sử dụng các hàm trong Spring Data JPA
Buổi 30: Xây dụng phần Custom trong Spring Data JPA
Buổi 31: Chuyển đổi Project-1 qua Spring Data JPA
Buổi 32: Làm các chức năng CRUD bằng Spring Data JPA
Phần 6: Nghiệm thu Project-1
Buổi 33 Nghiệm thu Project-1 bằng JDBC, JPA và Spring Data JPA Setup Project Spring Boot Web

Unit testing với JUnit 5

Mocking với Mockito

Test coverage và mutation testing

Testing best practices

Continuous testing trong CI/CD

Phần 7: Xây dựng giao diện bằng Bootstrap-Jquery-Ajax và tích hợp vào Project Spring Boot Web
Buổi 34: Sử dụng Bootstrap để xây dựng phần FE

Cài đặt và cấu hình Prometheus

Tích hợp Micrometer để thu thập metrics

Xây dựng dashboard với Grafana

Cấu hình cảnh báo (alerts)

Theo dõi hiệu năng hệ thống

Bài tập thực hành: Xây dựng hệ thống giám sát (10 bài tập)

Buổi 35: Sử dụng Bootstrap để xây dựng phần FE

Cài đặt Elasticsearch, Logstash, Kibana

Cấu hình log aggregation

Tìm kiếm và phân tích logs

Xây dựng visualizations

Cấu hình cảnh báo dựa trên logs

Bài tập thực hành: Xử lý logs (15 bài tập)

Buổi 36: JQuery, Ajax, Js(P1)
Buổi 37: JQuery, Ajax, Js(P2)
Buổi 38: JQuery, Ajax, Js(P3) + Nhúng giao diện vào Project Spring Boot Web
Buổi 39: @modelattribute, ModelAndView,<form:form>,<form:input>,<form:select>....
Buổi 40: @modelattribute, ModelAndView,<form:form>,<form:input>,<form:select>....
Buổi 41: Hướng dẫn xây dựng chức năng giao sản phẩm cho nhân viên
Buổi 42: Tổng kết và giao Project-2: Apply chức năng tìm kiếm, thêm, xóa, sửa và giao sản phầm vào giao diện
Buổi 43: Review và sửa Project-2 trên lớp(P1)
Buổi 44: Sửa Project-2(P2)
Buổi 45: Sửa Project-2(P3) và tổng kết
Phần 8: Học về Json Web Token, Spring Security, Build Core Annotations (Chuyên Sâu)
Buổi 46: Học về Spring Security(p1)

Tổng quan về OpenAI API

Xây dựng service tích hợp OpenAI

Xử lý prompt và completion

Tối ưu hóa chi phí API

Xử lý lỗi và retry mechanism

Bài tập thực hành: Tích hợp OpenAI (10 bài tập)

Buổi 47: Học về Spring Security(p2)

Giới thiệu về Hugging Face Hub

Tải và sử dụng pre-trained models

Fine-tuning mô hình cho ứng dụng

Tối ưu hóa inference

Deployment considerations

Bài tập thực hành: Hugging Face (10 bài tập)

Buổi 48: Học về Json Web Token

Kiến trúc của hệ thống RAG

Cài đặt và cấu hình vector database

Xử lý và embedding documents

Triển khai semantic search

Tối ưu hóa kết quả trả về

Bài tập thực hành: Xây dựng RAG (15 bài tập)

Buổi 49: OAuth2 (Open Authorization 2.0) (P1)
Buổi 50: OAuth2 (Open Authorization 2.0) (P2)
Buổi 51: Học về Java Reflection - Java Generic - Java Annotation(P1)(findAll)
Buổi 52: Học về Java Reflection - Java Generic - Java Annotation(P2)(save)
Phần 9: Xây dựng Project 3
Buổi 53 Hướng dẫn phần thiết kế giao diện cho Project-3

Cơ chế hoạt động của WebSocket

Triển khai WebSocket với Spring

Xử lý Server-Sent Events

Quản lý kết nối và sessions

Xử lý lỗi và reconnection

Bài tập thực hành: WebSocket (10 bài tập)

Buổi 54 Hướng dẫn xây dựng chức năng giao khách hàng cho nhân viên(Giao dịch)

Load balancing WebSocket connections

Clustering và session replication

Monitoring WebSocket performance

Xử lý backpressure

Best practices và patterns

Bài tập thực hành: Scale WebSocket (10 bài tập)

Buổi 55 Giao Project 2 : Apply chức năng tìm, thêm, sửa, xóa và giao khách hàng cho nhân viên quản lý vào quản lý giao dich
Buổi 56 Review và sửa Project-3(P1)
Buổi 57 Sửa Project-3(P2)
Buổi 58 Sửa Project-3(P3) và Tổng kết
Phần 10: Viết Unit-Test cho Project
Buổi 59: Unit-test :Mockito

Cơ bản về GraphQL schema

Định nghĩa types và relationships

Thiết kế queries và mutations

Xử lý input validation

Versioning trong GraphQL

Bài tập thực hành: Schema Design (8 bài tập)

Buổi 60: Unit-test:Mockito, Integration Test

Cài đặt query resolvers

Xử lý mutation resolvers

Implement DataLoader pattern

Caching trong resolvers

Error handling strategies

Bài tập thực hành: Resolvers (10 bài tập)

Buổi 61: Unit-test :Integration Test

Query complexity analysis

Batching và caching

Pagination implementation

Query depth limiting

Monitoring và logging

Bài tập thực hành: Performance (7 bài tập)

Phần 11: Dạy về Spring Cloud,Kafka, Flow thanh toán VNPay, Final Project
Buổi 62: Spring Cloud Config Server

Tổng quan về DevOps và văn hóa DevOps

Quy trình CI/CD và tầm quan trọng

Các công cụ CI/CD phổ biến: GitLab, Jenkins, GitHub Actions

Thiết lập môi trường CI/CD cơ bản

Bài tập thực hành: Cài đặt và cấu hình CI/CD (5 bài tập)

Buổi 63: Giao tiếp giữa các microservice, làm quen với OpenFeignSpring Cloud Config Server

Xây dựng pipeline với GitLab CI/CD

Tự động hóa build và test với Jenkins

Triển khai tự động với Docker và Kubernetes

Quản lý cấu hình với Infrastructure as Code

Bài tập thực hành: Pipeline (8 bài tập)

Buổi 64: Authentication cho Api Gateway với JWT,Authorization trong microservices với JWT

Các chiến lược triển khai: Blue-Green, Canary

Giám sát và logging trong CI/CD

Xử lý lỗi và rollback

Best practices trong triển khai

Bài tập thực hành: Deployment (7 bài tập)

Buổi 65: Authentication và Authorization giữa các micro-service(P1)

Nguyên tắc và workflow GitOps

Tự động hóa quy trình phát triển

Quản lý môi trường với GitOps

Bảo mật trong CI/CD pipeline

Bài tập thực hành: GitOps (5 bài tập)

Buổi 66: Authentication và Authorization giữa các micro-service(P2)
Buổi 67: CORS cho API-Gateway
Buổi 68: Cài đặt, cấu hình Kafka với Docker
Buổi 69: Gửi email thông qua Kafka
Buổi 70: Create chat message,Create websocket server for real-time chat
Buổi 71 Flow thanh toán VNPay
Buổi 77 Tổng kết khóa học Java Backend
Buổi 72 Xây dựng flow thanh toán VNPay(P1)
Buổi 73 Xây dựng flow thanh toán VNPay(P2)
Buổi 74 Review và sửa Project Final(P1)
Buổi 75 Review và sửa Project Final(P2)
Buổi 76 Hướng dẫn viết CV và phỏng vấn
Phần 12: Project Final