-
Design Pattern
- Singleton Design Pattern
- Factory Design Pattern
- Factory Method Design Pattern
- Abstract Factory Design Pattern
- Builder Design Pattern
- Prototype Design Pattern
- Object Pool Design Pattern
- Chain of Responsibility Design Pattern
- Command Design Pattern
- Interpreter Design Pattern
- Iterator Design Pattern
- Mediator Design Pattern
- Memento Design Pattern
- Observer Design Pattern
- Observer Design Pattern - Xử Lý Exception
- Strategy Design Pattern
- Template Method Design Pattern
- Visitor Design Pattern
- Null Object Design Pattern
- Adapter Design Pattern
- Bridge Design Pattern
- Composite Design Pattern
- Decorator Design Pattern
- Flyweight Design Pattern
- Proxy Design Pattern
- S.O.L.I.D
- Clean code
- Lập trình socket
- Java Core
- Multi-Thread
- Spring
- Java Web
- Memory Caching
- Message Queue
- DevOps
- Xây dựng một nền tảng
- MongoDB
- MySQL timestamp
- Properties vs yaml
- Kotlin
- Lập Trình Machine Learning với PyTorch
- Mã Nguồn Mở
- Ezy HTTP
- Free Chat
- Một số kinh nghiệm với Git
- Review cho đồng nghiệp!
- Setup Dev Environment
- Hello World
- Create a Server Project
- Handle Client Requests
- Using ezyfox-server-csharp-client
- Using ezyfox-es6-client
- Client React.js Interaction
- Build And Deploy In Local

Mùa xuân vẫn tiếp tục!
Năm 2012 lần đầu tiên mình lập trình với Spring lúc mình dùng nó với Strut2, thực sự thì lúc đó mình cũng chẳng hiểu được Spring là cái gì và mình dùng Spring lúc đó cũng khá ngây ngô khi sử dụng xml để làm file cấu hình và cùng thời điểm thì Strut2 đã hộ trợ sử dụng Annotation rất tốt
Sau 8 năm, có nhiều thứ đã thay đổi, Spring đã nâng cấp rất nhiều phiên bản và bây giờ nó là sự lựa chọn của rất nhiêu lập trình viên trên toàn thế giới. Không có một con số thống kê cụ thể nhưng mình nghĩ Spring bây giờ đã vượt lên Java2EE của oracle để trở thành hệ sinh thái framework được sử dụng nhiều nhất toàn cầu
Vậy spring là gì?
Spring xuất phát điểm là một thư viện để quản lý bean (các đối tượng singleton và các đối tượng prototype) cho các dự án và bây giờ trái tim của Spring vẫn là vậy với module spring-context. Nó cho phép chúng ta thoát khỏi việc khởi tạo đối tượng, giúp chúng ta tự động hóa việc set các thuộc tính cho các lớp, bind các giá trị property từ file cấu hình và rất nhiều tính năng nữa mình sẽ đề cập trong loạt bài về Spring
Khi nào thì cần dùng Spring?
Đối với những dự án phức tạp dành cho doanh nghiệp, có rất nhiều các component (service, repository, ...) thì lựa chọn spring là một giải pháp hợp lý, việc của chúng ta là xử lý nghiệp vụ, logic, còn việc quản lý cấu hình, quản lý bean hãy để spring lo. Và thực tế ngày nay chúng ta hay dùng spring cho các dự án HTTP, Websocket, Middle Service và Batch.
Cách tiếp cận nhanh nhất?
Hãy tiếp cận spring qua các ví dụ về quản lý bean sử dụng các annotation @Component, @Service và @Controller. Khi bạn đã thành thạo việc quản lý bean qua việc sử dụng các annotation này, thì có nghĩa bạn đã thành thạo #Spring rồi đó. Lưu ý là đừng học spring qua xml nhé, nó lỗi thời rồi
Kết luận
Về cơ bản thì Spring không tạo ra các công nghệ cốt lõi, nó chỉ quản lý bean và cấu hình nên với mình nó vẫn chỉ là 1 framework đi wrap lại các thư viện khác. Việc lúc nào cũng áp mô hình MVC cũng không phải là hoàn hảo và trong nhiều trường hợp và vẫn luôn có những cách giải quyết khác tốt hơn.
Tham khảo
-
Design Pattern
- Singleton Design Pattern
- Factory Design Pattern
- Factory Method Design Pattern
- Abstract Factory Design Pattern
- Builder Design Pattern
- Prototype Design Pattern
- Object Pool Design Pattern
- Chain of Responsibility Design Pattern
- Command Design Pattern
- Interpreter Design Pattern
- Iterator Design Pattern
- Mediator Design Pattern
- Memento Design Pattern
- Observer Design Pattern
- Observer Design Pattern - Xử Lý Exception
- Strategy Design Pattern
- Template Method Design Pattern
- Visitor Design Pattern
- Null Object Design Pattern
- Adapter Design Pattern
- Bridge Design Pattern
- Composite Design Pattern
- Decorator Design Pattern
- Flyweight Design Pattern
- Proxy Design Pattern
- S.O.L.I.D
- Clean code
- Lập trình socket
- Java Core
- Multi-Thread
- Spring
- Java Web
- Memory Caching
- Message Queue
- DevOps
- Xây dựng một nền tảng
- MongoDB
- MySQL timestamp
- Properties vs yaml
- Kotlin
- Lập Trình Machine Learning với PyTorch
- Mã Nguồn Mở
- Ezy HTTP
- Free Chat
- Một số kinh nghiệm với Git
- Review cho đồng nghiệp!
- Setup Dev Environment
- Hello World
- Create a Server Project
- Handle Client Requests
- Using ezyfox-server-csharp-client
- Using ezyfox-es6-client
- Client React.js Interaction
- Build And Deploy In Local