2011-09-06 31 views
6

Tôi tìm câu trả lời cho Guice Overriding Binding in Guice nhưng không biết cách thực hiện tương tự cho GIN trong GWT.Cách ghi đè ràng buộc trong GIN

Cảm ơn trước!

+0

Tại sao bạn muốn ghi đè lên một GinModule cho? – Luismahou

+1

Xin chào, tôi đang suy nghĩ để thay thế một số ràng buộc với mô phỏng trong thử nghiệm đơn vị. nếu điều này được hỗ trợ, tôi có thể thay thế chúng bằng cách mở rộng mô-đun và ghi đè lên các ràng buộc ... –

Trả lời

5

Theo như tôi biết, nó không được hỗ trợ.

Để trả lời bình luận của bạn:

Nếu bạn đang chạy "tinh khiết" kiểm tra JUnit (không GWTTestcases) bạn không sử dụng GIN, bạn sử dụng Guice, và trong Guice bạn có thể ghi đè lên các module. Nếu bạn muốn sử dụng lại các mô-đun GIN, hãy quấn chúng bằng cách sử dụng GinModuleAdapter. Vì vậy, bạn có thể làm điều gì đó như sau:

static class MyGinModule extends GinModule { 
    ... 
} 
static class MyGuiceModule extends AbstractModule { 
    ... 
} 

// And somewhere in your code, here's how you could create the Injector 
Module myWrappedGinModule = new GinModuleAdapter(new MyGinModule()); 
Module myModule = Modules.override(myWrappedGinModule).with(new MyGuiceModule()); 
Injector injector = Guice.createInjector(myModule); 
+0

+1 để đề cập rằng trong kiểm tra junit guice được sử dụng thay vì gin. – Peter

0

Sử dụng chú thích @ImplementedBy trong giao diện của bạn.

Lớp được chỉ định trong chú thích sẽ là triển khai mặc định.

Bạn có thể chỉ định một triển khai khác, ghi đè hiệu quả mặc định.

Ví dụ:

@ImplementedBy(MyWidgetImpl.class) 
public interface MyWidget { 
    //... 
} 

public class MyWidgetImpl implements MyWidget { 
    //... 
} 
Các vấn đề liên quan