2010-01-09 12 views
5

NHibernate Interceptor là gì, và mục đích gì nó phục vụ trong một ứng dụng?NHibernate Interceptor - Nó là gì

Ngoài ra, in this article, tôi học được rằng sử dụng NHibernate làm cho ứng dụng trên máy tính khởi động chậm hơn, vì vậy để tránh điều này, tôi cần phải lưu cấu hình trong tệp và sau đó tải nó từ tệp đã lưu. Làm thế nào tôi có thể làm điều đó? Tôi không tìm thấy bất kỳ ví dụ nào trong hướng dẫn đó.

+0

Có hai câu hỏi ở đây. Vui lòng tạo các câu hỏi riêng cho từng vấn đề. –

Trả lời

8

Một đánh chặn cho phép bạn thực hiện các chức năng bổ sung khi một thực thể được lấy/xóa/cập nhật/chèn vào DB ...

Interceptors article

Hibernate doc

other useful info

Về làm ứng dụng của bạn chậm hơn: Tôi khuyên bạn chỉ nên xem xét tối ưu hóa thời gian khởi động, khi nó thực sự trở thành một vấn đề.

Khi bạn xây dựng một phiên làm việc, NHibernate sẽ phân tích cú pháp tất cả các ánh xạ và đó là một thao tác tốn kém một chút. Nhưng, miễn là bạn có một số lượng hạn chế các thực thể, hiệu suất đạt được không phải là lớn.
Tôi chưa bao giờ phải tối ưu hóa việc khởi tạo NHibernate, vì thời gian khởi động chậm.

Tôi khuyên bạn trước tiên nên tập trung vào cốt lõi của ứng dụng của bạn - vấn đề bạn đang cố gắng giải quyết- và sau đó có một cái nhìn về cách bạn có thể cải thiện hiệu suất khởi động. (Nếu bạn sẽ phải làm điều đó).

+3

FYI, liên kết tài liệu Hibernate không còn hoạt động. –

6

Interceptors, như tên chính nó nói, cho phép bạn chặn các hoạt động NHibernate (lưu/cập nhật/xóa/tải/tuôn ra/v.v.).

API mới hơn, linh hoạt hơn để đạt được điều này là event system.

Giới thiệu về việc tuần tự hóa cấu hình, mã ở đó, đó là lớp Effectus.Infrastructure.BootStrapper được gọi lúc khởi động ứng dụng.