Hi a Dũng,
Cho em hỏi các anotation sau có ý nghĩa gì ạ.
Em cảm ơn.
@EzyConfigurationBefore
@EqualsAndHashCode
@MappedSuperclass
@Data
@Retention
@Inherited
@Target
Nguyen NamTeacher
Ý nghĩa của anotation
Share
1. @EzyConfigurationBefore
Khi bean context được khởi tạo, nó sẽ gọi đến các lớp được annotation với
EzyConfigurationBefore
đầu tiên.2. @EqualsAndHashCode
Khi em dùng annotation này, thằng lombok nó sẽ tự tạo ra hàm
equals
vàhashCode
cho em3. @MappedSuperclass
Dùng cho jpa khi em muốn các thuộc tính của lớp cha được include vào lớp entity thừa kế lớp cha này
4. @Data
Khi em dùng annotation này, thằng lombok nó sẽ tự tạo các hàm getter, setter, và toString cho em.
5. @Retention
Chuyên dùng để định nghĩa annotation, nó sẽ quy định phạm vi mà anntation sẽ được áp dụng:
– SOURCE: dùng ở trong giai đoạn code, dùng để mô tả và hướng dẫn compiler, ví dụ @Override dùng để mô tả là hàm đó được cài đặt lại chứ ko có ý nghĩa gì với trình dịch
– CLASS: có ý nghĩa với trình dịch nhưng ít dùng
– RUNTIME: dùng để sử dung ở runtime
6. @Inherited
Chuyên dùng để định nghĩa annotation, để nói rằng các lớp con thừa kế lớp cha sử dụng annotation này cũng sẽ bị annotated như lớp cha.
7. @Target
Chuyên dùng để định nghĩa annotation, để chỉ định vị trí mà annotation được sử dụng, ở hàm, ở lớp, ở tham số hay ở package
Anh Dũng cho em hoi là khi mình tự tạo một annotation bằng cách dùng @Rentation để cung cấp thêm thông tin (meta-data) cho lớp, cho hàm. Sau đó thì mình dùng java reflection để đọc mấy cái annotation. Em hiểu vậy đúng không ạ
Đúng rồi em ạ