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

Những Design Patterns nào được sử dụng trong Spring Framework?

Câu trả lời

Trong Spring Framework, một số Design Patterns (mẫu thiết kế) phổ biến được sử dụng bao gồm:

1. Singleton Pattern

  • Mô tả: Đảm bảo rằng một lớp chỉ có một thể hiện duy nhất và cung cấp một điểm truy cập toàn cục đến thể hiện đó.
  • Sử dụng trong Spring: Mặc định, Spring container tạo và quản lý các bean theo mẫu thiết kế Singleton. Điều này có nghĩa là mỗi bean được định nghĩa trong Spring context sẽ được tạo ra như một thể hiện duy nhất trong suốt vòng đời của container.

2. Factory Pattern

  • Mô tả: Sử dụng một lớp Factory để tạo ra các đối tượng thay vì tạo trực tiếp bằng cách sử dụng từ khóa new.
  • Sử dụng trong Spring: Spring sử dụng mẫu thiết kế Factory để tạo ra các bean. BeanFactoryApplicationContext là hai loại container cung cấp cơ chế để tạo và quản lý các bean.

3. Prototype Pattern

  • Mô tả: Cho phép một đối tượng tạo ra các bản sao của chính nó.
  • Sử dụng trong Spring: Nếu bạn định nghĩa một bean với scope là prototype, Spring container sẽ tạo một thể hiện mới của bean mỗi khi nó được yêu cầu.

4. Proxy Pattern

  • Mô tả: Sử dụng một lớp proxy để đại diện cho một lớp khác và kiểm soát quyền truy cập đến đối tượng này.
  • Sử dụng trong Spring: Spring AOP (Aspect-Oriented Programming) sử dụng mẫu thiết kế Proxy để bao quanh một đối tượng và thêm các hành vi bổ sung như logging, transactions, và security.

5. Builder Pattern

  • Mô tả: Tách rời quá trình xây dựng một đối tượng phức tạp khỏi biểu diễn của nó để cùng một quá trình xây dựng có thể tạo ra các biểu diễn khác nhau.
  • Sử dụng trong Spring: Spring Boot sử dụng mẫu thiết kế Builder để cung cấp một cách dễ dàng và linh hoạt để cấu hình và tạo ra...
middle

middle

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

expert

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

middle

Session scope trong Spring có mục đích gì?

expert

Sự khác biệt giữa <context:annotation-config><context:component-scan> trong Spring là gì?

Bình luận

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