- vừa được xem lúc

Lộ trình tự học Spring Framework từ cơ bản đến nâng cao

0 0 28

Người đăng: Bùi Phan Viết Cường

Theo Viblo Asia

Xin chào tất cả mọi người hôm nay mình muốn chia sẻ với mọi người lộ trình tự học Spring Framework từ cơ bản đến nâng cao. Chắc chắn lộ trình cũng chỉ là tương đối một khung sườn cho các bạn mới tiếp cận thôi nhé mọi người cứ góp ý thoải mái chắc chắn sẽ đống góp để bộ khung này trở nên hoàn thiện và trọn vẹn hơn cho các bạn sau này tìm kiếm và dễ định hướng hơn.

1. IOC và DI, Bean, Scope, Factory trong Spring
2. Spring AOP, Spring Core
3. Cấu hình tự động của ứng dụng Spring Boot
4. Các anotation căn bản
@SpringBootApplication
@Component
@Controller@RestController@ResponseBody
@Service
@Repository@ComponentScan@Configuration
@Bean@Conditional@Lazy@Primary@Qualifier@DependsOn
@Autowired
@Value
@Transactional@Query@Modifying
@RequestParam@RequestBody@PathVariable@RequestHeader
@RequestMapping@PostMapping@GetMapping@PutMapping@DeleteMapping
- Các annotation dùng để kiểm tra dữ liệu @Valid@NotNull@Nullable@Length,...
5. Cấu hình biến môi trường, các thuộc tính trong ứng dụng Spring
- application.properties
- application.yml
6. Cấu hình profiles cho ứng dụng Spring Boot
- Dev, Test, Prod
7. Mô hình lớp trong Spring Boot
- Lớp Controller
- Lớp Service (Business Logic)
- Lớp Repository (Persistence)
8. Xây dựng Interface và mô hình đa kế thừa Service
9. Giao tiếp với cơ sở dữ liệu SQL
- Hibernate
- JPA
- Hiểu về mapping entity với table trong cơ sở dữ liệu
10. Giao tiếp với cơ sở dữ liệu NoSQL
- Sử dụng Template
- Custom Document
11. Các xử lý nâng cao trong giao tiếp cơ sở dữ liệu
- Criteria và Query Builder
- Phân trang
- Sort nhiều điều kiện
- Specification
- Native query và sử dụng template
12. Xử lý lỗi trong ứng dụng và cách trả lỗi về Client
- Exception Handler
- Trả về lỗi theo HttpStatus
- Trả về lỗi theo Custom Status
13. Cấu hình nhiều DataSource
14. Xử lý sự kiện và bất đồng bộ
- EventListener
- Async
15. Chạy lịch schedule và khái niệm executor pool trong Spring
16. Microservices trong Spring
17. Tìm hiểu Maven trong single Service và Microservices
18. Giao tiếp giữa các service qua HTTP
19. Giao tiếp giữa các service qua Eureka
- Server Eureka
- Server Discovery
- Spring Actuator cho việc audit hệ thống và các service con bên trong
20. Tìm hiểu hệ thống Message Queue
21. Giao tiếp giữa các service thông qua Message Queue
22. Tìm hiểu về SSE, WebSocket, polling
23. Tìm hiểu Kafka
- Sau khi có khái niệm về SSE và Kafka chúng ta có thể dựng hệ thống push notification không cần sử dụng đến các bên thứ 3 hỗ trợ như Firebase, Parse Server
24. Tìm hiểu SocketIO
25. Tìm hiểu về WebFlux
26. Tìm hiểu về RxJava
27. Tìm hiểu nâng cao về cơ chế bất đồng bộ và API bất đồng bộ
28. Tìm hiểu Filter, Filterchain, CORS, Request, Response, Session, CSRF
29. Học về Spring Security
30. Hệ thống xác thực căn bản
31. Hệ thống xác thực nâng cao Spring OAuth2 (Token Store + JWT + Third Party)
32. Khái niệm API Gateway
33. Chi tiết API Gateway hỗ trợ sẵn của Spring Boot
34. Tìm hiểu Open Source Kong API Gateway
35. Cấu hình ghi log trong Spring Boot
- Ghi log vào file
- Ghi log vào database
- Tự cấu hình log cho hệ thống, ghi vào service log
36. Thao tác với báo cáo JasperReport trong Spring Boot
37. Thao tác với File, Multipart trong Spring Boot
38. Các anotation nâng cao
@PostConstruct@PreDestroy
@PropertySource
@CrossOrigin
@ExceptionHandler
@InitBinder@ControllerAdvice
@EnableDiscoveryClient@EnableEurekaServer@EnableConfigServer
@Cacheable
@Async
@BeforeTransaction@AfterTransaction
@MockBean@JsonTest@TestPropertySource
39. Tự custom anotation trong ứng dụng
- Kết hợp với AOP để xây dựng bộ khung quản lý luồng chạy ứng dụng Spring Boot như trước khi vào Controller kiểm tra RequestBody, sau khi return value xử lý log,...
40. Cache dữ liệu với Memory, Redis
41. Xây dựng Dockerfile cho ứng dụng Spring Boot
42. Xây dựng docker-compose cho ứng dụng Spring Boot
43. Deploy microservices trên Docker
44. CI-CD với Jenkins cho ứng dụng Spring Boot
45. Cấu hình Nginx cho việc gọi API tới Spring Boot
46. Cấu hình Nginx cho việc gọi tới Microservices
47. Cấu hình security cho Nginx
48. Tự động hóa ứng dụng
- Tạo schedule động với việc tạo 1 bean Autowired động và hệ thống quản lý job từ cơ sở dữ liệu
- Khởi động ứng dụng Spring Boot dynamic không cần phải stop và restart gói build war hoặc jar
- ... (đa phần sẽ là kinh nghiệm đúc kết từ quá trình làm việc)
49. Swagger cho ứng dụng
- Spring OpenAPI
- Springfox Swagger
50. Testing cho ứng dụng
51. Load balancer cho ứng dụng
52. Design Pattern cho ứng dụng
53. Code Clean cho ứng dụng

Cảm ơn mọi người đã theo dõi góc nhỏ xíu này của mình nơi mình muốn chia sẻ chút kiến thức mình tự học, được học ở trường, học ở công ty cho tất cả mọi người có đam mê trên con đường trở thành một kỹ sư phần mềm nhé ^^

Note link bài viết trên blog của mình: https://gociter.wordpress.com/2020/09/14/lo-trinh-hoc-spring-framework-tu-co-ban-den-nang-cao/

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 500

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 374

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 335

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 421

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414