Câu hỏi phỏng vấn Spring
Câu hỏi

Aspect-Oriented Programming (AOP) là gì?

Câu trả lời

Aspect-Oriented Programming (AOP) là một mô hình lập trình giúp tăng cường tính mô-đun bằng cách cho phép tách biệt các khía cạnh (aspects) từ logic chính của chương trình. AOP nhằm giải quyết các vấn đề liên quan đến các chức năng phụ trợ hoặc các mối quan tâm chéo (cross-cutting concerns) mà không làm giảm tính đồng nhất của mã nguồn. Các chức năng này thường bao gồm logging, transaction management, security, caching, và error handling, vốn có thể ảnh hưởng đến nhiều phần của ứng dụng và khó được quản lý trong mô hình lập trình truyền thống như Object-Oriented Programming (OOP).

Khái niệm cơ bản trong AOP

  • Aspect: Là một module chứa mã code thực hiện một chức năng cụ thể, không liên quan trực tiếp đến logic nghiệp vụ chính của ứng dụng. Aspect có thể được áp dụng tại nhiều điểm trong ứng dụng mà không cần sửa đổi mã nguồn gốc
  • Join Point: Điểm trong chương trình mà tại đó có thể chèn thêm hành động từ một aspect. Trong Spring AOP, join point thường là thực thi của một phương thức
  • Advice: Định nghĩa hành động cụ thể được thực hiện tại một join point. Có nhiều loại advice như before, after, around, after returning, và after throwing
  • Pointcut: Biểu thức được sử dụng để xác định tại những join point nào một advice sẽ được áp dụng
  • Target Object: Đối tượng mà các advice được áp dụng lên. Trong Spring AOP, target object thường đượ...
middle

middle

Gợi ý câu hỏi phỏng vấn

senior

Spring WebFlux là gì?

middle

Sự khác biệt giữa các annotations @Component, @Repository & @Service trong Spring là gì?

expert

Có thể sử dụng cả Web MVCWebFlux trong cùng một ứng dụng không?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào