Hỏi đáp công nghệ

Spring Framework là gì? Các tính năng cốt lõi của Spring Framework

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Table of Contents

Java là một trong những ngôn ngữ lập trình phổ biến và được sử dụng rộng rãi nhất hiện nay. Nó là ngôn ngữ lập trình đứng đằng sau mọi thứ từ các ứng dụng di động đến các hệ thống doanh nghiệp quy mô lớn. Vì Java hỗ trợ cho hầu hết mọi loại phát triển, nên nhiều khuôn khổ và công cụ đã phát triển để đơn giản hóa và hợp lý hóa các phát triển phần mềm dựa trên Java.

Spring Framework là gì?
Spring Framework là gì?

Khi nói đến việc xây dựng các ứng dụng web dựa trên Java, Spring là một trong những framework phổ biến nhất. Trong bài viết này, chúng ta sẽ cùng xem xét Spring framework là gì và Các tính năng cốt lõi của Spring Framework

Spring Framework là gì?

Spring Framework là một open-source framework để xây dựng các ứng dụng Java doanh nghiệp. Spring nhằm mục đích đơn giản hóa quy trình phát triển ứng dụng Java phức tạp và cồng kềnh của doanh nghiệp bằng cách cung cấp một framework bao gồm các công nghệ như:

  • Lập trình hướng khía cạnh (Aspect-oriented programming – AOP)
  • Dependency injection (DI)
  • Plain Old Java Object (POJO)

Ngay cả với tất cả các công nghệ này, Spring vẫn là một framework nhẹ được sử dụng để tạo các ứng dụng web doanh nghiệp có thể mở rộng, bảo mật và mạnh mẽ. Ở cấp độ vĩ mô, chúng ta có thể coi Spring framework là một tập hợp các framework phụ như Spring Web Flow, Spring MVC và Spring ORM. Ngoài Java, Spring cũng hỗ trợ cả Kotlin và Groovy.

Spring framework cũng là cơ sở cho tất cả các dự án dựa trên Spring khác, ví dụ như:

  • Spring Boot
  • Spring Cloud
  • Spring GraphQL

Các tính năng cốt lõi của Spring Framework

Chúng ta hãy xem xét các tính năng cốt lõi của Spring framework.

Vùng chứa IoC

Vùng chứa IoC (Inversion of Control) là một trong những tính năng cốt lõi của Spring cung cấp một cách hợp lý để cấu hình và quản lý các đối tượng Java. Vùng chứa này chịu trách nhiệm quản lý vòng đời của một đối tượng Java xác định, làm tăng đáng kể khả năng cấu hình của một ứng dụng dựa trên Spring.

IoC sử dụng mẫu dependency injection hoặc dependency lookup để cung cấp tham chiếu đối tượng trong thời gian chạy. Vùng chứa bao gồm assembler code được yêu cầu để quản lý cấu hình. Spring cung cấp các gói org.springframework.beans và org.springframework.context có thể được sử dụng để hỗ trợ các chức năng này.

Hỗ trợ lập trình hướng khía cạnh

AOP nhằm mục đích cung cấp nhiều mô-đun hơn cho các mối quan tâm xuyên suốt, đó là các chức năng trải dài trên ứng dụng, chẳng hạn như:

  • Logging
  • Bộ nhớ đệm
  • Quản lý giao dịch
  • Xác thực

Hơn nữa, AOP bổ sung cho lập trình hướng đối tượng (OOP) bằng cách cung cấp cho nó một cách khác để cấu trúc chương trình, trong đó mô-đun OOP dựa trên các class.

Trong AOP, đơn vị chính của mô đun là một khía cạnh (mối quan tâm xuyên suốt). Điều này cho phép người dùng sử dụng AOP để tạo các khía cạnh tùy chỉnh và các dịch vụ doanh nghiệp khai báo. Vùng chứa IoC không phụ thuộc vào AOP, mang lại sự linh động hơn nữa cho các developer trong việc lựa chọn phương pháp lập trình ưa thích của họ.

Tuy nhiên, lập trình hướng khía cạnh kết hợp với Spring IoC cung cấp một giải pháp phần mềm trung gian mạnh mẽ .

Data access framework

Các vấn đề về giao tiếp cơ sở dữ liệu là một trong những vấn đề phổ biến mà các nhà phát triển phải đối mặt khi phát triển các ứng dụng. Spring đơn giản hóa quy trình giao tiếp cơ sở dữ liệu bằng cách cung cấp hỗ trợ trực tiếp với các data access framework  (framework truy cập dữ liệu) phổ biến trong Java, chẳng hạn như JDBC, Hibernate, Java Persistence API (JPA), v.v.

Ngoài ra, nó cung cấp các tính năng như quản lý tài nguyên, xử lý ngoại lệ và gói tài nguyên cho tất cả các data access framework được hỗ trợ, đơn giản hóa hơn nữa quá trình phát triển.

Xem thêm >> DBMS là gì? Vai trò quan trọng của nó với doanh nghiệp

Framework quản lý giao dịch

Không giống như API giao dịch Java (JTA), framework quản lý giao dịch Spring không giới hạn đối với các giao dịch lồng ghép và toàn cầu. Spring cung cấp một cơ chế trừu tượng cho Java và cho phép người dùng:

  • Làm việc với các giao dịch cục bộ, toàn cầu và lồng ghép
  • Tiết kiệm point
  • Đơn giản hóa việc quản lý giao dịch trên ứng dụng

Framework truy cập dữ liệu Spring tích hợp trực tiếp với data access framework với hỗ trợ nhắn tin và bộ nhớ đệm. Điều này cho phép các nhà phát triển tạo ra các hệ thống giao dịch giàu tính năng trải dài trên các ứng dụng mà không phụ thuộc vào EJB hoặc JTA.

Spring MVC framework

Spring MVC cho phép các nhà phát triển tạo các ứng dụng bằng cách sử dụng pattern MVC phổ biến. Nó là một framework dựa trên yêu cầu cho phép các nhà phát triển dễ dàng tạo các triển khai MVC tùy chỉnh chính xác và phù hợp với nhu cầu của họ.

Thành phần cốt lõi của Spring MVC là lớp DispatcherServlet xử lý các yêu cầu của người dùng và sau đó chuyển tiếp chúng đến đúng bộ điều khiển. Điều này cho phép bộ điều khiển xử lý yêu cầu, tạo mô hình và sau đó cung cấp thông tin cho người dùng cuối qua chế độ xem được chỉ định.

Dịch vụ web Spring

Thành phần Spring Web Service này cung cấp một cách hợp lý để tạo và quản lý các endpoint của dịch vụ web trong ứng dụng. Nó cung cấp một cách tiếp cận phân lớp có thể được quản lý bằng cách sử dụng XML và có thể được sử dụng để cung cấp ánh xạ cho các yêu cầu web tới một đối tượng cụ thể.

Spring test framework

Kiểm thử (test) là một phần cốt lõi của bất kỳ sự phát triển nào. Spring đơn giản hóa quá trình kiểm thử trong framework với các thành phần như:

  • Mô phỏng đối tượng
  • Framework TestContext
  • Kiểm thử Spring MVC

Kiến trúc Spring Framework

Ở trên, chúng tôi đã xem xét các tính năng cốt lõi làm cho Spring trở thành một framework tuyệt vời. Bây giờ chúng ta sẽ xem xét kiến ​​trúc của Spring — loại kiến ​​trúc hỗ trợ tất cả các tính năng kể trên.

Spring Framework là gì?
Spring Framework là gì? Kiến trúc Spring Framework

Sơ đồ trên đại diện cho các thành phần cơ bản của kiến ​​trúc Spring. Như bạn có thể thấy, Spring được xây dựng bằng cách sử dụng các mô-đun khác nhau cho phép các chức năng khác nhau.

Core container

Vùng chứa này chứa các mô-đun cơ bản là nền tảng của Spring framework.

  • Core (spring-core) là cốt lõi của Spring framework cung cấp các tính năng như Inversion of Control và dependency injection.
  • Beans (spring-beans) cung cấp Beanfactory, là một sản phẩm thực hiện tinh vi theo pattern của nhà máy.
  • Context (spring-context) được xây dựng dựa trên Core và Beans, cung cấp một phương tiện để truy cập các đối tượng đã xác định. Giao diện ApplicationContext là phần cốt lõi của mô-đun Context và hỗ trợ Spring-context-support cung cấp hỗ trợ cho các tương tác của bên thứ ba như bộ nhớ đệm, gửi thư và công cụ template.
  • SpEL (spring-expression) cho phép người dùng sử dụng ngôn ngữ Spring Expression để truy vấn và thao tác biểu đồ đối tượng trong runtime.

Truy cập/tích hợp dữ liệu

Thành phần này bao gồm các mô-đun được sử dụng để xử lý truy cập dữ liệu và xử lý giao dịch trong một ứng dụng.

  • JDBC (spring-jdbc) cung cấp lớp trừu tượng JDBC giúp loại bỏ sự quá trình tách code JDBC khi xử lý cơ sở dữ liệu.
  • ORM (spring-orm) là các lớp tích hợp cho API ánh xạ quan hệ đối tượng phổ biến như JPA, JDO Hibernate.
  • OXM (spring-oxm) là lớp trừu tượng hỗ trợ triển khai ánh xạ Object/XML như JAXB, XStream.
  • JMS (spring-jms) là mô-đun Java Messaging Service (JMS) giúp tạo và sử dụng các tin nhắn tích hợp trực tiếp với mô-đun Spring massage.
  • Giao dịch (spring-tx) cung cấp quản lý giao dịch có lập trình và khai báo cho các lớp bao gồm các giao diện đặc biệt và POJO.

Web

Lớp Web liên quan đến các mô-đun cung cấp các chức năng dựa trên web trong Spring.

  • WebSocket (spring-websocket) hỗ trợ giao tiếp dựa trên socket web cho máy khách và máy chủ.
  • Servlet (spring-webmvc) là mô-đun Spring WebMVC chứa các triển khai MVC và REST.
  • Web (spring-web) cung cấp tất cả các tính năng hướng web cơ bản và chứa ứng dụng khách HTTP cùng các phần liên quan đến web của Spring Remoting.
  • Portlet (spring-webmvc-portlet) cung cấp triển khai MVC được sử dụng trong môi trường portlet.

Các mô-đun khác

  • AOP (spring-aop) cung cấp triển khai lập trình hướng khía cạnh có thể được sử dụng khi tạo ứng dụng.
  • Aspects (spring-aspects) cho phép tích hợp trực tiếp với phần mở rộng lập trình AspectJ bằng nền tảng eclipse.
  • Instrumentation (Spring-tools) là thiết bị hỗ trợ lớp và triển khai trình class loadercho các máy chủ ứng dụng.
  • Messaging (spring-messaging) cung cấp một nền tảng mạnh mẽ để quản lý nhắn tin trong các ứng dụng.
  • Kiểm thử (Spring-test) là mô-đun kiểm thử Spring giúp hỗ trợ kiểm thử đơn vị và kiểm thử tích hợp với JUnit và TestNG.

Xem thêm >> User story là gì? Ví dụ và template về User story

Sự phát triển của Spring Framework

Spring Framework được phát hành lần đầu tiên vào năm 2004. Sau đó nó đã có những bản sửa đổi khá lớn, chẳng hạn như Spring 2.0 cung cấp không gian tên XML và hỗ trợ AspectJ, Spring 2.5 cung cấp cấu hình theo hướng annotation, Spring 3.0 cung cấp mô hình @Configuration dựa trên Java.

Phiên bản mới nhất của spring framework là 4.0. Nó được phát hành với sự hỗ trợ cho các công nghệ Java 8 và Java EE 7. Mặc dù bạn vẫn có thể sử dụng Spring với phiên bản java cũ hơn, nhưng yêu cầu tối thiểu bị hạn chế đối với Java SE 6. Spring 4.0 cũng hỗ trợ các công nghệ Java EE 7, ví dụ như dịch vụ tin nhắn java (JMS) 2.0, java persistence API (JPA) 2.1, Bean validation 1.1, servlet 3.1, và JCache.

Vậy là trong bài viết trên, Hỏi đáp Công nghệ đã giải đáp rất chi tiết câu hỏi Spring Framework là gì. Hi vọng bài viết giúp bạn nắm được những khái niệm cần thiết về framework này. Chúc các bạn vui vẻ!

Các bài viết liên quan

5 thoughts on “Spring Framework là gì? Các tính năng cốt lõi của Spring Framework”

  1. Pingback: NGINX là gì? Ưu nhược điểm của nó so với Web server khác

  2. I must thank you for the efforts you have put in writing this blog. Im hoping to check out the same high-grade blog posts from you in the future as well. In fact, your creative writing abilities has encouraged me to get my own, personal site now 😉

  3. יש לך שליחות שאתם צריכים מהיום ליום?

    שוב יש טפטוף מהגג? האורחים
    ממתינים לטיפולים בסלון אפור ומפנק
    סביב אח בוערת, ובאזור החמאם
    התורכי וחדרי הג’קוזי הפרטיים יש פינת ישיבה בסגנון אינדונזי.

    שימו לב כי ישנם זוגות שהילדים הקטנים בבית
    נדחפים להם למיטה באמצע הלילה, יש כאלה שהבית קטן מדי
    והפרטיות אף פעם לא מספיקה, חדר לפי שעה זהו חדר אירוח דיסקרטי במרכז, בלי שאף
    אחד יפריע וידע תוכלו לבלות כמה שעות של רומנטיקה, כי אסור להזניח את הזוגיות והאהבה לא משנה כמה השגרה שלכם קשה.
    כאן תוכלו למצוא מגוון נערות ליווי , יפיפיות המציעות אירוח
    דיסקרטי במגוון דירות סקס. שירותי סקס ליווי
    בנתניה ללא מין הם באמצעות
    הזמנה טלפונית אלייך לבית הפרטי או לבית מלון והכול באופן דיסקרטי בבת ים לחלוטין.
    נערות ליווי באילת. שירותי ליווי באילת להזמנה לביתך
    / מלון לפינוק מושלם. ברוב המקרים, קליניקות להשכרה בשרון
    כוללות את הקליניקה עצמה, מזגנים, חיבור
    אינטרנטי, ריהוט מתאים למטפל ולרופא
    , חדרי המתנה למטופלים, שירותי זימון תורים, שירותי מזכירות, שירותי ניקיון, שירותים
    לרופאים ולמטופלים ועוד.

  4. הפגישות הינן דיסקרטיות וסודיות, זאת
    על מנת לאפשר לכל לקוח להנות ולצאת מהשגרה השוחקת והעמוסה לכמה שעות
    ללא דאגות קלל. בין אם מדובר בשירותי ליווי ובין
    אם מדובר בבריחה מהשגרה והיום יום לכמה שעות,
    הדירות לרשותכם במחירים נוחים ובזמינות גבוהה.
    היום אפשר למצוא באינטרנט הרבה אתרים
    למבוגרים עם נערות ליווי עצמאיות שמציעות ארסנל גדול של תענוגות.
    הנערות המצויות בקיסריה הן נערות אקסקלוסיביות שמגיעות הישר מהעשירון העליון ומונגשת לכל לקוח
    באשר הוא. לעתים, ישנה הזדמנות שלא חוזרת על עצמה ונערת ליווי בקיסריה
    שלא תפגשו אולי יותר. הכינו כסף מראש – לנערות ליווי צריך לשלם במזומן.

    אם פעם הייתם חייבים לקבוע מראש נסיעה לבית מלון באזור רחובות – היום אפשר לעשות
    זאת בדקה התשעים בלי לשלם על זה מחיר, באמצעות חדרים לפי שעה ברחובות
    והסביבה, האיכותיים ביותר. בבתי המלון
    לא ניתן להשכיר חדרים לפי שעה ולכן הדרך הקלה והפשוטה
    ביותר לעשות זאת היא באמצעות השכרה
    של דירות דיסקרטיות בבאר שבע או דירות דיסקרטיות בדרום, לפי העדפתכם.

  5. Great goods from you, man. I have understand your stuff previous to and you’re just extremely excellent.
    I really like what you’ve acquired here, really like what you’re stating
    and the way in which you say it. You make it enjoyable and you still care
    for to keep it wise. I can’t wait to read far more from you.
    This is actually a terrific site.

Leave a Comment

Email của bạn sẽ không được hiển thị công khai.

Bài viết liên quan