Những mẫu thiết kế nào được sử dụng trong Spring framework? [đóng cửa]


90

Những mẫu thiết kế nào được sử dụng trong Spring framework?


Nó bao gồm hơn 10 mẫu bao gồm ..MVC, Front controller, View Helper, Singleton, Prototype, Factory, v.v. javabench.in/2012/02/design-patterns-being-used-in-spring.html
Raúl

Câu trả lời:


74

Có rất nhiều mẫu thiết kế khác nhau được sử dụng, nhưng có một số mẫu rõ ràng:

  • Proxy - được sử dụng nhiều trong AOPRemting .

  • Singleton - bean được định nghĩa trong các tệp cấu hình mùa xuân là các tệp đơn theo mặc định.

  • Phương pháp mẫu - được sử dụng rộng rãi để xử lý mã lặp lại soạn sẵn (chẳng hạn như đóng các kết nối sạch sẽ, v.v.). Ví dụ JdbcTemplate , JmsTemplate , JpaTemplate .


Cập nhật các nhận xét sau: Đối với MVC, bạn có thể muốn đọc Tham khảo MVC

Một số mẫu rõ ràng được sử dụng trong MVC:

  • Bộ điều khiển Chế độ xem Mô hình :-). Ưu điểm của Spring MVC là bộ điều khiển của bạn là POJO thay vì là các servlet. Điều này giúp kiểm tra bộ điều khiển dễ dàng hơn. Một điều cần lưu ý là bộ điều khiển chỉ được yêu cầu trả về tên chế độ xem hợp lý và lựa chọn chế độ xem được để lại cho một ViewResolver riêng biệt . Điều này giúp bạn dễ dàng sử dụng lại bộ điều khiển cho các công nghệ chế độ xem khác nhau.

  • Bộ điều khiển phía trước . Spring cung cấp DispatcherServlet để đảm bảo một yêu cầu đến được gửi đến bộ điều khiển của bạn.

  • View Helper - Spring có một số thẻ JSP tùy chỉnh và macro vận tốc, để hỗ trợ tách mã khỏi bản trình bày trong các dạng xem.


Cảm ơn, Các mẫu thiết kế được sử dụng trong mô-đun Spring MVC là gì?
Tony

10
Tôi không nghĩ Spring thực hiện singleton cho các hạt đậu. Lưu ý rằng một bean phạm vi đơn sẽ có một phiên bản duy nhất cho mỗi ngữ cảnh ứng dụng . Vì vậy, nếu ứng dụng của bạn có hai ngữ cảnh Spring, chúng tải cùng một bean singleton Foovà bạn truy xuất phiên bản của Foomỗi ngữ cảnh, bạn sẽ nhận được hai tham chiếu đối tượng khác nhau. Thay vào đó, mẫu thiết kế được áp dụng ở đây là hạng ruồi
Luiggi Mendoza

@Luiggi Mendoza bạn có nghĩa là mùa xuân không có vật thể singleton? xin vui lòng giải thích cho tôi với một số làm rõ.
Kumaresan Perumal

1
@KumaresanPerumal có một sự khác biệt đáng kể giữa mẫu Singleton và cá thể singleton (lưu ý chữ S viết hoa / viết thường). Singleton pattern là về việc duy trì một thể hiện duy nhất của đối tượng thông qua toàn bộ ứng dụng. Những gì Spring làm khi phát hiện một bean singleton là tạo một phiên bản duy nhất cho mỗi ngữ cảnh ứng dụng . Bối cảnh ứng dụng là thành phần cốt lõi của Spring, và phục vụ cho việc tạo và truy xuất các đối tượng. Singleton bean chỉ được tạo một lần cho mỗi ngữ cảnh ứng dụng.
Luiggi Mendoza

Các liên kết cho bộ điều khiển chế độ xem mô hình, bộ điều khiển phía trước và chế độ xem được trợ giúp đưa đến oracle.com/technetwork/java/index.html . Bạn có thể vui lòng cập nhật câu trả lời bằng một liên kết đang hoạt động không?
SpringLearner

12

Và tất nhiên là tiêm phụ thuộc, hoặc IoC (đảo ngược điều khiển), là trung tâm của toàn bộ nội dung BeanFactory / ApplicationContext.


10

Điều DI thực sự là một số loại mô hình chiến lược. Bất cứ khi nào bạn muốn một số logic / thực thi có thể trao đổi, bạn thường tìm một giao diện và một phương thức setter thích hợp trên lớp máy chủ để thực hiện tùy chỉnh giao diện đó.


Câu trả lời từ chính Master. @Oliver, bạn có thể nêu thêm các mẫu ở đây không?
Gaurav

6

Spring là tập hợp các mẫu API thực tiễn tốt nhất, bạn có thể viết danh sách mua sắm chúng miễn là tầm tay của mình. Cách API được thiết kế khuyến khích bạn (nhưng không buộc bạn) tuân theo các mẫu này và một nửa thời gian bạn làm theo chúng mà không biết mình đang làm như vậy.


3

Service Locator Pattern - ServiceLocatorFactoryBean lưu giữ thông tin của tất cả các bean trong ngữ cảnh. Khi mã khách hàng yêu cầu một dịch vụ (bean) bằng cách sử dụng tên, nó chỉ cần định vị bean đó trong ngữ cảnh và trả về nó. Mã máy khách không cần phải viết mã liên quan đến mùa xuân để xác định vị trí của một bean.


2

Observer-Observable: nó được sử dụng trong cơ chế sự kiện của ApplicationContext


1

Factory pattern cũng được sử dụng để tải bean thông qua BeanFactory và Application context.


1

Factory Method pattern: BeanFactory để tạo thể hiện của một đối tượng Singleton: kiểu thể hiện có thể là singleton cho một ngữ cảnh Nguyên mẫu: kiểu thể hiện có thể là nguyên mẫu. Builder pattern: bạn cũng có thể xác định một phương thức trong một lớp, người sẽ chịu trách nhiệm tạo phiên bản phức tạp.


0

Spring container tạo ra các đối tượng bean tùy thuộc vào phạm vi bean (singleton, nguyên mẫu, v.v.). Vì vậy, điều này trông giống như thực hiện mô hình Nhà máy trừu tượng . Trong quá trình triển khai nội bộ của Spring, tôi chắc chắn rằng mỗi phạm vi phải được gắn với loại nhà máy cụ thể.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.