Spring Framework

Lịch sử

Phần đầu tiên của Spring Framework ban đầu nguyên được Rod Johnson viết vào năm 2000, trong khi ông đang làm một chuyên viên cố vấn cho các khách hàng trong thị trường kinh tế tài chính tại Luân Đôn. Trong lúc đang viết quyển Expert One-on-one J2EE Design And Development (Programmer to programmer) (Thiết kế và kiến tạo Java EE - tương giao cá nhân một đối một chuyên ngành (lập trình viên với lập trình viên)), ông đã mở rộng thêm phần mã nguồn, hòng biểu đạt ý tưởng của mình về mối tương quan của các trình ứng dụng với những phần khác nhau của J2EE và cho rằng người ta có thể đơn giản hóa mối tương quan của chúng, và mối liên hệ ấy có thể trở nên cố định, bất biến hơn là những gì mà các lập trình viên và các công ty vốn quen sử dụng tại thời điểm đó.
Trước đây, vào năm 2001, những mô hình lập trình cho các trình ứng dụng cho mạng WEB được đại đa số sử dụng đều do Java Servlet API và Enterprise JavaBean cung cấp. Cả hai đều là đặc tả do Sun Microsystems kiến tạo với sự cộng tác của các nhà buôn bán phần mềm và các bên quan tâm, và chúng rất được mến chuộng trong cộng đồng Java. Những trình ứng dụng không dùng cho mạng WEB như các ứng dụng trình khách (client-based application) hay các ứng dụng tác vụ (batch application) đều có thể sử dụng các công cụ từ mã nguồn mở, các công cụ trên thị trường hoặc từ các dự án khác là những cái cung cấp những đặc trưng yêu cầu.
Rod Johnson được ghi công là người thiết lập bộ khung, dựa trên những thói quen hành nghề được công chúng chấp nhận là những phương pháp tốt nhất, và tạo cơ hội cho chúng có thể được sử dụng trong tất cả các loại hình chương trình ứng dụng, không chỉ cho các trình ứng dụng cho mạng WEB riêng mà thôi. Ý tưởng này còn được biểu lộ trong cuốn sách của ông và, sau khi được độc giả yêu cầu, ông còn cho xuất bản kèm với mã nguồn với giấy phép mã nguồn mở nữa.
Một nhóm nhỏ các nhà phát triển đang tiếp tục mở rộng bộ khung này và một dự án đã được thành lập tại Sourceforge vào tháng 2 năm 2003. Sau khi phát triển trền nền tảng ban đầu hơn một năm họ đã phát hành phiên bản đầu tiên (1.0) vào tháng 3 năm 2004. Sau khi phát hành nó đã nhận được nhiều sự quan tâm của cộng đồng Java.
Tuy nhiên, Spring Framework cũng chịu nhiều chỉ trích nặng nề năm 2004 và vẫn còn là chủ điểm của những cuộc tranh cãi đôi khi nóng bỏng. Vào thời điểm ra đời phiên bản đầu tiên nhiều lập trình viên cùng một số thành viên tiên phong thấy nhận thấy rằng Spring Framework là một phương hướng mới để thoát khỏi mô hình lập trình truyền thống. Điều này đặc biệt đúng đối với Enterprise JavaBean. Một trong những mục tiêu thiết kế Spring Framework là làm cho nó dễ dàng tích hợp với tiêu chuấn J2EE và các bộ công cụ có sẵn trên thị trường hiện nay. Ảnh hưởng của điều này là nó hầu như góp phần xóa bỏ nhu cầu phải định nghĩa các chức năng đặc trưng trên một bản tài liệu đặc tả chính thức do hội đồng quản lý, cái mà một số người đã từng phê phán.
Spring Framework đã làm cho những kỹ thuật vốn không được biết đến mấy trở nên những kỹ thuật được mọi người ưa chuộng trong một thời gian ngắn ngủi. Một trong những kỹ thuật nổi tiếng hơn cả là kỹ thuật đảo ngược quyền khống chế (Inversion of Control, IoC). Nội trong 2004, Spring Framework được rất nhiều người hưởng ứng và làm theo và cũng do tự chính nó cống hiến khung hình lập trình định dạng (aspect-oriented programming) (AOP). Spring Framework đã tạo cơ hội cho mẫu hình lập trình này trở nên được ưa thích trong cộng đồng Java.
Năm 2005 cho thấy mức độ hưởng ứng nâng cao hơn những năm trước, nguyên do cũng vì những xuất bản mới được ra với những cột mốc đáng kể và những tính năng mới được thêm vào. Diễn đàn Spring (Spring Forum) ra đời cuối năm 2004 cũng góp phần không nhỏ trong việc nâng cao tính phổ biến của bộ khung hình, và từ đó đến nay đã sinh trưởng trở thành một nguồn thông tin quan trọng, giúp đỡ cho người sử dụng.
Trong cùng năm đó, những người phát triển Spring Framework khởi thủy công ty riêng của họ để hỗ trợ về mặt thương mại và đáng kể hơn cả là sự bắt tay cộng tác với BEA . Vào tháng 12 năm 2005, hội thảo đầu tiên về Spring Framework đã được tổ chức tại Miami, Florida thu hút 300 nhà phát triển trong 3 ngày, và tiếp theo đó cuộc hội thảo ở Antwerp vào tháng 6 năm 2006, thu hút hơn 400 người.

Lịch sử phiên bản

Phiên bản đầu tiên của Spring được viết bởi Rod Johnson, cùng lúc đó ông cũng cho ra cuốn sách Expert One-on-One J2EE Design and Development vào tháng 10 năm 2002. Ban đầu, bộ khung được phát hành dưới Giấy phép Apache 2.0 vào tháng 06 2003. Cột mốc đầu tiên, bản 1.0, được phát hành tháng 03 năm 2004, và lần lượt các mốc phát hành kế tiếp vào tháng 09 năm 2004 và tháng 03 năm 2005. Phiên bản Spring 1.2.6 nhận Giải năng suất Jolt (Jolt Productivity award) và một Giải Cải tiến JAX (JAX Innovation Award) vào năm 2006. Spring 2.0 was released in October 2006, Spring 2.5 in November 2007, Spring 3.0 in December 2009, Spring 3.1 in December 2011, and Spring 3.2.5 in November 2013. Spring Framework 4.0 được phát hành vào tháng 12 năm 2013. Cải tiến đáng chú ý của phiên bản này gồm có hỗ trợ Java SE 8, Groovy 2, một số phần của Java EE7, và WebSocket.
Spring Framework 4.2.0 được phát hành ngày 31 tháng 07 năm 2015 và ngay sau đó được nâng cấp lên phiên bản 4.2.1, được phát hành ngày 01 tháng 09 cùng năm. Phiên bản này được mô tả là "tương thích với Java 6, 7 và 8, chú trọng vào những cải tiến cốt lõi và tính năng web hiện đại".
Spring Framework 4.3 được phát hành ngày 10 tháng 06 năm 2016. Phiên bản 4.3.0.RC1  có hiệu lực. Nó "sẽ là thế hệ cuối cùng cho những yêu cầu của Spring 4 (Java 6+, Servlet 2.5+), chuẩn bị cho phiên bản mở rộng 4.3.x với thời gian hỗ trợ đến năm 2019".
Spring 5 được thông báo rằng sẽ dựng trên Reactive Streams tương thích với Reactor Core.

Giới thiệu

Spring Framework cung cấp các giải pháp cho nhiều thách thức kỹ thuật mà các nhà phát triển phần mềm Java và các tổ chức muốn tạo ứng dụng dựa trên nền tảng Java phải đối mặt với Java platform. Bởi vì số lượng lớn chức năng của Spring Framework, việc phân loại những bộ phận cơ bản kiến tạo nên bộ khung là một việc rất khó. Spring Framework không chỉ được liên kết riêng biệt với Java Enterprise platform mặc dù sự tích hợp sâu của Spring trong Java EE là một yếu tố quan trọng cho sự phổ dụng, nổi tiếng của nó.
Có lẽ Spring Framework nổi tiếng nhất với sự cung cấp một cách hiệu quả các tính năng cần thiết để tạo ra các ứng dụng thương mại phức tạp, vượt lên khỏi các mô hình lập trình từng chiếm vị trí ưu thế trong lịch sử ngành công nghiệp phần mềm. Tiếp theo, nó cũng được ghi nhận về việc đưa các chức năng vốn ít được quen biết vào thực tế, có khi còn vượt cả ra bên ngoài nền tảng Java nữa.
Thành quả của việc này là nó đã tạo nên một bộ khung, cung cấp một mô hình nhất quán và làm cho nó có thể áp dụng vào hầu hết các loại ứng dụng được tạo trên nền tảng Java ngày nay. Bộ khung Spring được coi như thực thi một cách làm việc dựa trên những thói quen thực hành tốt nhất và những tiêu chuẩn công nghiệp, và đồng thời tạo cơ hội cho những lĩnh vực trong Java sử dụng nó.