Sunday, November 25, 2012

Access annotated dependencies through injector instance


Following sample will demonstrate how to access guice dependency annotated with some annotation through direct Guice injector instance.

Bar.java

 import java.lang.annotation.Retention;  
 import java.lang.annotation.RetentionPolicy;  
 import com.google.inject.BindingAnnotation;  
 @Retention(RetentionPolicy.RUNTIME)  
 @BindingAnnotation  
 public @interface Bar {  
 }  

Foo.java

 import java.lang.annotation.Retention;  
 import java.lang.annotation.RetentionPolicy;  
 import com.google.inject.BindingAnnotation;  
 @Retention(RetentionPolicy.RUNTIME)  
 @BindingAnnotation  
 public @interface Foo {  
 }  

TestDepdency.java

 public interface TestDepdency {  
      String getValue();  
 }  

FooTestDependencyImpl.java

 public class FooTestDependencyImpl implements TestDepdency {  
      @Override  
      public String getValue() {  
           return "Foo";  
      }  
 }  

BarTestDependencyImpl.java

 public class BarTestDependencyImpl implements TestDepdency {  
      @Override  
      public String getValue() {  
           return "Bar";  
      }  
 }  

Test.java

 import com.google.inject.AbstractModule;  
 import com.google.inject.Guice;  
 import com.google.inject.Injector;  
 import com.google.inject.Key;  
 public class Test {  
      public static void main(String[] args) {  
           Injector injector = Guice.createInjector(new AbstractModule() {  
                @Override  
                protected void configure() {  
                     bind(TestDepdency.class).annotatedWith(Foo.class).to(FooTestDependencyImpl.class);  
                     bind(TestDepdency.class).annotatedWith(Bar.class).to(BarTestDependencyImpl.class);  
                }  
           });  
           TestDepdency foo = injector.getInstance(Key.get(TestDepdency.class, Foo.class));  
           System.out.println(foo.getValue());  
           TestDepdency bar = injector.getInstance(Key.get(TestDepdency.class, Bar.class));  
           System.out.println(bar.getValue());  
      }  
 }  


Final output

 Foo  
 Bar  


In the similar way you can retrieve the annotated provider.

8 comments:

  1. Replies
    1. I have read your blog its very attractive and impressive. I like it your blog.

      Java Training in Chennai Core Java Training in Chennai Core Java Training in Chennai

      Java Online Training Java Online Training Core Java 8 Training in Chennai java 8 online training JavaEE Training in Chennai Java EE Training in Chennai

      Delete
  2. شركةتنظيف بالدمام
    تعد عملية التنظيف من الأولويات عند الكثيرون فلن يقف الاهتمام بالتنظيف على السيدات فقط، فهناك الكثير من الرجال الذين يرغبون في الجلوس بمكان نظيف خالي من الروائح الكريهة والأشياء المتعفنة والأتربة والحشرات، وكل ما يدل على عدم النظافة، وهذا ما يجعله يطرق أبواب شركة تنظيف بالدمام حتى أن يحصل على خدماتها الفريدة من نوعها وهي:
    · تقدم شركة تنظيف بالدمام خدمة التنظيف بالساعة.
    · تعمل على تنظيف الكنب والسجاد والستائر والمفروشات بالبخار.
    · تعتمد على استخدام أحدث معدات وأدوات التنظيف.
    · خدمة مكافحة الحشرات بالدمام.
    · استخدام أقوى المنظفات الأكثر أماناً على صحة الإنسان والبيئة.
    · خدمة تنظيف مسابح بالدمام.
    · خدمة تنظيف وعزل خزانات.
    · خدمة عزل أسطح.

    ReplyDelete
  3. شركة فحص تسربات المياه بالرياض https://buff.ly/2VhRp0q  بالفعل قد أصبحت واحدة من أفضل الشركات وأكثرهم تخصصاً فيما يتعلق بمجال الفحص عن التسربات المائية دون اللجوء إلى التكسير

    المصدر: شركة فحص تسربات المياه بالرياض

    شركة فحص تسربات المياه بالرياض https://buff.ly/2DpEuz7 إحدى المشاكل التي تتعرض لها المنازل وقد لا يشعرُ بها صاحب البيت إلا بعد تفاقمها هي مشكلة تسربات المياه وشركة الطارق للخدمات المنزلية هي أفضل شركة كشف تسربات المياه بالرياض لما تقدمه لعملائها من خدماتٍ كثيرةٍ في هذا المجال تهدف إلى إنهاء مشكلة تسربات المياه بصورةٍ جذريةٍ وبشكلٍ علمي متطورٍ يحافظ على سلامة البناء داخليًا وخارجيًا

    المصدر: شركة فحص تسربات المياه بالرياض

    افضل شركة تسليك مجاري بالرياض https://buff.ly/2vgrmrD الشركة متخصصة في تنظيف وتسليك المجاري وحل كل مشاكلها وإزالة الروائح الكريهة وتخليصك منها ,فلدى الشركة خبرة طويلة عبر السنين الماضية في هذا النوع من الأعمال كمان أنها مسئولة عن التنظيف و التسليك بما تمتلكه من أدوات ومعدات حديثة تنظف وتسلك وتحل المشكلة التي تسبب انسداد المجرى مما تسبب التعطيل وانبعاث الروائح الكريهة ,
    لدى الشركة خبرة في تسليك كل ما يتعلق بالصرف الصحي
    لا تقلق بانسداد المجاري أو طفحها مجددا نحن نضمن لك أعلى مستوى من الخدمة . .… اقرأ المزيد

    المصدر: شركة تسليك مجاري بالرياض

    ReplyDelete