Spring boot: #4 tìm hiểu annotation trong spring

Spring boot: #4 tìm hiểu annotation trong spring

21/01/2021 Off By dat09

Java cung cấp khái niệm annotation từ version 5.0, và Spring Framework cũng bắt đầu sử dụng các annotation từ bản phát hành 2.5.

Spring support for JSR-250 annotations

The ‘Common Annotations for the Java Platform’ were introduced with Java EE version 5 and are also included out-of-the-box beginning with Java SE version 6. In May 2006, BEA Systems announced their collaboration with Interface21 on a project called Pitchfork that provided a Spring-based implementation of the Java EE 5 programming model including support for JSR-250 annotations and EJB 3 annotations (JSR-220) for injection, interception, and transactions.https://spring.io/blog/2007/11/19/spring-framework-2-5-released

Vậy annotation là gì ?

Dưới đây là khái niệm mình tìm ở một số trang và dịch từ tài liệu gốc của java

Annotation được hiểu là một dạng chú thích hoặc  một dạng siêu dữ liệu (metadata) được dùng để cung cấp thông tin dữ liệu cho mã nguồn Java.

Hầu hết các bài viết đều định nghĩa đại loại như vậy, nhưng ở thời điểm bắt đầu học java thì thực sự nó vẫn khá mơ hồ. Chú thích là gì ? siêu dữ liệu là gì ? cung cấp thông tin dữ liệu cho mã nguồn là sao ?

Đầu tiên là khái niệm về siêu dữ liệu:
Có một định nghĩa cũng khá khó hiểu đó là “dữ liệu về dữ liệu”, nó có nghĩa Siêu dữ liệu là bất kỳ dữ liệu nào để mô tả các dữ liệu khác. 

Ví dụ: Thông tin về một tấm hình đó là một dạng siêu dữ liệu

Nếu bạn đã từng học qua XML thì đó cũng làm một ngôn ngữ đặc tả dữ liệu, nó mô tả thuộc tính, cấu trúc cơ bản của loại data.

Trong một ứng dụng thì phải cung cấp các config, các thuộc tính cho chương trình, trước khi có annotation thì  sử dụng các phương pháp như comment, properties hoặc XML nhưng ngoài nhược điểm về chi phí thời gian thì có một vấn đề vô cùng lớn đó là không phát hiện được lỗi ở thời điểm chương trình compile (cái này khác với run code của php), mà lỗi chỉ xảy ra ở giai đoạn runtime , dẫn đến việc debug rất khó khăn cho lập trình viên.

Annotation ra đời đã cải thiện được vấn đề trên, đơn giản hóa và tường minh hơn nhiều so với trước đây, giúp developer chỉ tập trung vào xử lý logic cho ứng dụng của mình.

Trong chương trình tại nơi khai báo annotation thì sẽ đánh dấu cho framework biết cần xử lý một tác vụ gì đó, và tự động framework sẽ xử lý, bạn không cần làm gì hết, và vì lý do không làm gì hết nên sẽ làm cho mình đặt một dấu hỏi lớn: “Cái éo gì đang xảy ra nhỉ ?”

Spring makes use of these annotations by scanning the classes registering them and injecting the necessary dependencies on to the object at compile or runtime for special processing that way the object comes fully bundled and ready for use. So Spring acts like a factory for object creation and it delivers to you composed object with all its dependencies injected.

# Các loại annotation trong java

Java Annotation có hai loại:

  • Các Annotation được tích hợp sẵn.
  • Annotation do người dùng tự định nghĩa.

# Annotation hoạt động thế nào

Để tìm hiểu chi tiết hơn quá trình xử lý annotation trong spring boot thì bạn có thể search trên google với keywork “Annotation processing” để biết chi tiết hơn, tạm thời ở bài viết này chỉ dừng lại ở đây thôi và hãy cùng devk2x tìm hiểu ở một bài viết mới, đừng quên follow nhé.