2015-07-14 20 views
6

Tôi đang xem Guice tại thời điểm này và có vẻ như nó hướng đến việc xây dựng chương trình ngữ cảnh rõ ràng bằng mô-đun.Guice + quét đường dẫn lớp

Bây giờ tôi khá quen với việc sử dụng chú thích để đưa nội dung nào đó vào ngữ cảnh và sử dụng quét lớp học để xây dựng ngữ cảnh. Bây giờ tôi có thể dễ dàng thêm tính năng "này" để guice, nhưng tôi không muốn phát minh lại bánh xe, vì vậy nếu ai đó biết nếu có một phần mở rộng đã làm điều này - xin vui lòng nói. Tuy nhiên, câu hỏi của tôi là, tôi sẽ phá vỡ việc sử dụng mong muốn và thiết kế của Guice bằng cách làm điều này ... có phải tôi đã bỏ lỡ vấn đề làm thế nào/tại sao guice có nghĩa là được sử dụng trong một ứng dụng doanh nghiệp không? Không.

+0

Bạn đang cố gắng làm gì? Guice không có nhiều ràng buộc dựa trên chú thích có thể phục vụ mục đích mà bạn đang yêu cầu. –

+0

@David - tương đương với quét đường dẫn lớp (@Autowired in spring) mà không cần phải thực hiện các ràng buộc trong mô-đun. – Cheetah

+0

Xem câu trả lời này: http://stackoverflow.com/questions/25506133/guice-equivalent-of-springs-autowire-list-of-instances –

Trả lời

3

Guice có một số thông minh JIT binding không cần thiết để quét theo loại (các loại cụ thể) trong hầu hết các trường hợp nếu không có yêu cầu ràng buộc thực tế (ví dụ: giao diện để triển khai, v.v.).

Cá nhân tôi tìm thấy quét gói cho các thành phần trong mùa xuân là một mớ hỗn độn. Thực tế là bạn phải lọc một cách rõ ràng những gì bạn không muốn, và nhận 'các gói con' (có nghĩa là không có gì trong ngôn ngữ) được quét theo mặc định, không có cách đơn giản để làm chỉ gói mà các loại của bạn đang ở (mà không mã lọc và phản chiếu xấu xí) cực kỳ dễ vỡ và dễ bị lỗi. Cách tiếp cận của Guice cho điều này là thanh lịch hơn nhiều (quy ước của Module cho mỗi gói). Vì vậy, trong ngắn hạn, tôi thấy mình là rõ ràng vào mùa xuân hầu hết thời gian để duy trì sự tỉnh táo của tôi :)

+0

Hi leeor! Tôi thực sự quan tâm: làm thế nào chúng ta có thể sử dụng JIT ràng buộc nếu chúng ta muốn đọc thực hiện một số lớp từ classpath như là một plugin? trong trường hợp chúng ta có tiêm một lớp bê tông - chúng ta không thể tránh tạo ra nó; trong trường hợp chúng ta có tiêm thực hiện giao diện - chúng ta không thể tránh ràng buộc rõ ràng. vì vậy JIT không thể giúp chúng tôi. Tôi hiểu có đúng không? – MiamiBeach

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