Bạn có thể muốn đưa Spring vào danh sách các khuôn khổ Dependency Injection mà bạn đang xem xét. Dưới đây là một số câu trả lời cho câu hỏi của bạn:
Khớp nối với khuôn khổ
Pico - Pico có xu hướng không khuyến khích tiêm setter nhưng ngoài điều đó, các lớp học của bạn không cần biết về Pico. Đó chỉ là cách nối dây cần biết (đúng với tất cả các khung DI).
Guice - Guice hiện hỗ trợ các chú thích JSR 330 tiêu chuẩn , vì vậy bạn không cần chú thích cụ thể của Guice trong mã của mình nữa. Spring cũng hỗ trợ các chú thích tiêu chuẩn này. Lập luận mà những người của Guice sử dụng là không có bộ xử lý chú thích Guice đang chạy, chúng sẽ không có tác động nếu bạn quyết định sử dụng một khung công tác khác.
Spring - Spring nhằm mục đích cho phép bạn tránh mọi đề cập đến khuôn khổ Spring trong mã của bạn. Bởi vì họ có rất nhiều trợ giúp / tiện ích khác, v.v ... nên sự cám dỗ khá mạnh mẽ khi phụ thuộc vào mã Spring.
Hiệu suất
Pico - Tôi không quá rành về các đặc tính tốc độ của Pico
Guice - Guice được thiết kế để nhanh chóng và so sánh được đề cập trong tài liệu tham khảo có một số con số. Chắc chắn nếu tốc độ là yếu tố chính thì nên cân nhắc sử dụng Guice hoặc đấu dây bằng tay
Spring - Mùa xuân có thể đến chậm. Đã có nhiều nỗ lực để làm cho nó nhanh hơn và việc sử dụng thư viện JavaConfig sẽ tăng tốc mọi thứ.
Dễ sử dụng
Pico - Cấu hình đơn giản. Pico có thể đưa ra một số quyết định tự động cho bạn. Không rõ nó có quy mô như thế nào đối với các dự án rất lớn.
Guice - Cấu hình đơn giản, bạn chỉ cần thêm chú thích và kế thừa từ AbstractModule để gắn kết mọi thứ với nhau. Quy mô tốt cho các dự án lớn vì cấu hình được giữ ở mức tối thiểu.
Spring - Tương đối dễ cấu hình nhưng hầu hết các ví dụ đều sử dụng Spring XML làm phương thức để cấu hình. Các tệp Spring XML có thể trở nên rất lớn và phức tạp theo thời gian và cần thời gian để tải. Cân nhắc sử dụng kết hợp Spring và Hand cranked Injection để khắc phục điều này.
Quy mô cộng đồng
Pico - Nhỏ
Guice - Trung bình
Mùa xuân - Lớn
Kinh nghiệm
Pico - Tôi chưa có nhiều kinh nghiệm với Pico nhưng nó không phải là một framework được sử dụng rộng rãi nên việc tìm kiếm tài nguyên sẽ khó hơn.
Guice - Guice là một framework phổ biến và sự tập trung vào tốc độ của nó được hoan nghênh khi bạn có một dự án lớn mà bạn đang khởi động lại rất nhiều trong quá trình phát triển. Tôi có một mối quan tâm về bản chất phân tán của cấu hình, tức là không dễ dàng để xem toàn bộ ứng dụng của chúng ta được kết hợp với nhau như thế nào. Nó hơi giống AOP về mặt này.
Spring - Mùa xuân thường là lựa chọn mặc định của tôi. Điều đó nói rằng, XML có thể trở nên cồng kềnh và gây khó chịu cho việc chạy chậm. Tôi thường sử dụng kết hợp Dependency Injection và Spring được làm thủ công. Khi bạn thực sự cần cấu hình dựa trên XML, Spring XML khá tốt. Spring cũng nỗ lực rất nhiều trong việc làm cho các khung công tác khác thân thiện hơn với Dependency Injection, điều này có thể hữu ích vì họ thường sử dụng phương pháp hay nhất khi làm như vậy (JMS, ORM, OXM, MVC, v.v.).
Người giới thiệu