Khóa học này được thực hiện hoàn toàn miễn phí trên Youtube, các bạn click vào link màu xanh ở dưới để xem nhé
Phần 1: Khóa học Spring Core
- Công nghệ sử dụng: Java JDK 8.0, Maven Apache 3.6, Spring Tools Suite STS 2021 4.2
- Kiến thức cần thiết: java cơ bản, interface
- Bài 1: Giới thiệu - spring là gì ?
- Bài 2: Spring Container - @Bean và @Configuration
- Bài 3: IOC DI design pattern - @Autowired
- Bài 4: @Component và @ComponentScan
- Bài 5: @Primary và @Qualifier
- Bài 6: PostConstruct và PreDestroy
- Bài 7: PropertySource và Value
Trong học phần này, ta sẽ được tìm hiểu về nguyên lý Inversion of control(IoC) , Dependency Injection (DI) trong thiết kế code phần mềm. Mình lấy ví dụ ngoài đời thực, mình có laptop dell 7552 gì đó, nó có bản Intel CPU và bản AMD CPU cho khách hàng tha hồ lựa chọn. Ta không nên thiết kế cứng một chiếc laptop sẽ đi với cpu nào cả, mà ta nên thiết kế rằng : giữa Laptop và Cpu có một bản hợp đồng. Các cpu nào ký bản hợp đồng này thì đều được làm việc với laptop. Trong mô hình này quan hệ giữa chúng là (laptop - has a - cpu) (cpu - is member of - laptop). Bản hợp đồng được nhắc ở đây chính là interface. Nhưng mà sao ta phải phân ra (Laptop has a Cpu) để làm gì, cứ viết code hết vào laptop cũng được mà ? tại vì đây là nguyên lý Single responsibility principle mỗi người một việc phần ai nấy làm, Laptop nó có nhiều việc quá (vừa nhận input từ bàn phím, vừa hiển thị cho user, vừa xử lý tính toán) ta chia bớt việc sang cho thằng Cpu làm tính toán
// không nên
class Laptop{ AmdCpu cpu; void calculate(){ this.cpu.calculate(); }
} // nên
interface ICpu{ void calculate();
} class AmdCpu implements ICpu{ @Override void calculate(){ System.out.println("I am Amd cpu, high performance of Graphic and cheaper"); } } class Laptop{ ICpu cpu; void calculate(){ this.cpu.calculate(); } public void setCpu(ICpu newCpu){ this.cpu = newCpu; } } class Main { public static void main(String args[]) { Laptop laptop = new Laptop(); laptop.setCpu(new AmdCpu()); // Ô yeahhh laptop dễ dàng thay đổi cpu laptop.setCpu(new IntelCpu()); // Ô yeahhh laptop dễ dàng thay đổi cpu } }
Khóa học Spring Core này đang được cập nhật
Phần 2: Khóa học Spring MVC
Công nghệ sử dụng: Java JDK 8.0, Apache Maven 3.6, Tomcat Server Apache 8.5, Jave Eclipse IDE for web developer ver2021
Trong học phần này ta sẽ tìm hiểu về mô hình lập trình web MVC. Bản chất của nó chính là một design pattern mà thôi, thay vì viết code tại một nơi quá nhiều thì ta nên chia việc ra rõ ràng tại các nơi. Trong đó, M là viết tắt của Model, nhiệm vụ của nó là mô tả và đóng gói dữ liệu truyền gởi giữa V và C. Còn V là viết tắt của View, nhiệm vụ là hiển thị dữ liệu cho người dùng, trình bày rõ ràng sạch đẹp. C là viết tắt của Controller, nhiệm vụ nhận yêu cầu từ user và trả về phản hồi tương ứng. Trong tin học có một khái niệm tương tự như vậy đó là Mapping ánh xạ
Khóa học Spring MVC vẫn đang tiếp tục cập nhật