2014-04-05 18 views
7

Tôi bắt đầu hiểu một chút về những gì xảy ra ở chế độ nền khi người dùng yêu cầu một số URL trong ngữ cảnh của Ứng dụng web Spring MVC. Nhưng tôi không thể xác định thời điểm và cách thức gắn kết dữ liệu, tức là ánh xạ giữa các trường của biểu mẫu đầu vào với đối tượng mô hình và sau đó tiêm đối tượng đó trong phương thức xử lý liên quan.Tính năng liên kết dữ liệu của Spring hoạt động như thế nào?

Bất kỳ ai biết lớp và phương pháp nào được ngụ ý, và điều này xuất hiện trong tài liệu ở đâu?

Trả lời

13

Nếu, ví dụ, bạn đang đăng dữ liệu đại diện cho SomeBean để xử lý này: public void (SomeBean someBean) sau đây xảy ra trong mùa xuân 4.

  • Một InvocableHandlerMethod sẽ lặp qua các thông số của phương pháp và sẽ yêu cầu một trường hợp HandlerMethodArgumentResolverComposite để giải quyết giá trị cho mỗi tham số.

  • HandlerMethodArgumentResolverComposite sẽ hỏi số HandlerMethodArgumentResolver s nếu chúng hỗ trợ thông số đã cho. Nếu người ta hỗ trợ tham số thì cái này được sử dụng để giải quyết giá trị.

  • A ModelAttributeMethodProcessor sẽ hỗ trợ thông số đã cho (SomeBean) và sẽ cố gắng giải quyết giá trị của nó.

  • Bên trong phương thức resolveArgumentModelAttributeMethodProcessor sẽ khởi tạo đối tượng mục tiêu của loại thông số.

  • Sau đó, nó sẽ gọi số WebDataBinderFactory để tạo một WebDataBinder có trách nhiệm ràng buộc yêu cầu đối tượng mục tiêu.

  • Khi được liên kết, mục tiêu sẽ được trả về và được cung cấp làm đối số cho phương thức xử lý.

P.s. Thay vì tài liệu bạn nên đọc mã nguồn.

+1

Cảm ơn bạn rất nhiều, bây giờ tôi có thể bắt đầu đào trong các lớp đó :) Và +1 cho "Thay vì tài liệu bạn nên đọc mã nguồn" –

Các vấn đề liên quan