Spring Framework - Tổng quan
Spring là khung phát triển ứng dụng phổ biến nhất cho Java doanh nghiệp. Hàng triệu nhà phát triển trên khắp thế giới sử dụng Spring Framework để tạo mã hiệu suất cao, dễ kiểm tra và có thể tái sử dụng.
Spring framework là một nền tảng Java mã nguồn mở. Ban đầu nó được viết bởi Rod Johnson và được phát hành lần đầu theo giấy phép Apache 2.0 vào tháng 6 năm 2003.
Lò xo nhẹ khi nói đến kích thước và độ trong suốt. Phiên bản cơ bản của Spring framework có dung lượng khoảng 2MB.
Các tính năng cốt lõi của Spring Framework có thể được sử dụng để phát triển bất kỳ ứng dụng Java nào, nhưng có những phần mở rộng để xây dựng ứng dụng web trên nền tảng Java EE. Spring framework nhằm mục đích làm cho việc phát triển J2EE dễ sử dụng hơn và thúc đẩy các phương pháp lập trình tốt bằng cách cho phép mô hình lập trình dựa trên POJO.
Lợi ích của việc sử dụng Spring Framework
Sau đây là danh sách một số lợi ích tuyệt vời của việc sử dụng Spring Framework:
Spring cho phép các nhà phát triển phát triển các ứng dụng cấp doanh nghiệp bằng cách sử dụng POJO. Lợi ích của việc chỉ sử dụng POJO là bạn không cần sản phẩm vùng chứa EJB như máy chủ ứng dụng nhưng bạn có tùy chọn chỉ sử dụng vùng chứa servlet mạnh mẽ như Tomcat hoặc một số sản phẩm thương mại.
Mùa xuân được tổ chức theo kiểu mô-đun. Mặc dù số lượng gói và lớp là đáng kể, bạn chỉ phải lo lắng về những gói và lớp bạn cần và bỏ qua phần còn lại.
Spring không phát minh lại bánh xe, thay vào đó nó thực sự sử dụng một số công nghệ hiện có như một số khung ORM, khung ghi nhật ký, bộ định thời JEE, Quartz và JDK và các công nghệ chế độ xem khác.
Việc kiểm tra một ứng dụng được viết bằng Spring rất đơn giản vì mã phụ thuộc vào môi trường được chuyển vào khuôn khổ này. Hơn nữa, bằng cách sử dụng JavaBeanstyle POJOs, việc sử dụng phương pháp tiêm phụ thuộc để đưa dữ liệu thử nghiệm trở nên dễ dàng hơn.
Khung công tác web của Spring là một khung công tác web MVC được thiết kế tốt, cung cấp một sự thay thế tuyệt vời cho các khung công tác web như Struts hoặc các khung công tác web được thiết kế quá mức hoặc ít phổ biến hơn.
Spring cung cấp một API thuận tiện để dịch các ngoại lệ dành riêng cho công nghệ (chẳng hạn do JDBC, Hibernate hoặc JDO) thành các ngoại lệ nhất quán, không được kiểm tra.
Ví dụ, các thùng chứa IoC nhẹ có xu hướng nhẹ, đặc biệt là khi so sánh với các thùng chứa EJB. Điều này có lợi cho việc phát triển và triển khai các ứng dụng trên máy tính có bộ nhớ và tài nguyên CPU hạn chế.
Spring cung cấp giao diện quản lý giao dịch nhất quán có thể giảm quy mô xuống giao dịch cục bộ (ví dụ: sử dụng một cơ sở dữ liệu duy nhất) và mở rộng quy mô lên giao dịch toàn cầu (ví dụ: sử dụng JTA).
Tiêm phụ thuộc (DI)
Công nghệ mà Spring được xác định nhiều nhất là Dependency Injection (DI)hương vị của Inversion of Control. CácInversion of Control (IoC)là một khái niệm chung, và nó có thể được diễn đạt theo nhiều cách khác nhau. Dependency Injection chỉ là một ví dụ cụ thể của Inversion of Control.
Khi viết một ứng dụng Java phức tạp, các lớp ứng dụng phải độc lập nhất có thể với các lớp Java khác để tăng khả năng sử dụng lại các lớp này và kiểm tra chúng độc lập với các lớp khác trong khi kiểm thử đơn vị. Dependency Injection giúp dán các lớp này lại với nhau và đồng thời giữ cho chúng độc lập.
Tiêm phụ thuộc chính xác là gì? Chúng ta hãy xem xét hai từ này riêng biệt. Ở đây phần phụ thuộc chuyển thành sự liên kết giữa hai lớp. Ví dụ, lớp A phụ thuộc vào lớp B. Bây giờ, chúng ta hãy xem phần thứ hai, tiêm. Tất cả điều này có nghĩa là, lớp B sẽ được IoC đưa vào lớp A.
Việc tiêm phụ thuộc có thể xảy ra theo cách truyền các tham số cho hàm tạo hoặc bằng cách sử dụng các phương pháp setter sau khi xây dựng. Vì Dependency Injection là trung tâm của Spring Framework, chúng tôi sẽ giải thích khái niệm này trong một chương riêng với ví dụ liên quan.
Lập trình hướng theo khía cạnh (AOP)
Một trong những thành phần quan trọng của Spring là Aspect Oriented Programming (AOP)khuôn khổ. Các hàm mở rộng nhiều điểm của một ứng dụng được gọi làcross-cutting concernsvà những mối quan tâm xuyên suốt này tách biệt về mặt khái niệm với logic nghiệp vụ của ứng dụng. Có nhiều ví dụ điển hình phổ biến về các khía cạnh bao gồm ghi nhật ký, giao dịch khai báo, bảo mật, bộ nhớ đệm, v.v.
Đơn vị quan trọng của mô-đun trong OOP là lớp, trong khi trong AOP, đơn vị mô-đun là khía cạnh. DI giúp bạn tách các đối tượng ứng dụng của mình khỏi nhau, trong khi AOP giúp bạn tách các mối quan tâm xuyên suốt khỏi các đối tượng mà chúng ảnh hưởng.
Mô-đun AOP của Spring Framework cung cấp một triển khai lập trình hướng khía cạnh cho phép bạn xác định các phương thức chặn và phím tắt để tách mã rõ ràng triển khai chức năng cần được tách biệt. Chúng ta sẽ thảo luận thêm về các khái niệm Spring AOP trong một chương riêng.