zoukankan      html  css  js  c++  java
  • google guice @inject comments

    refer this document: http://blog.chinaunix.net/uid-20749563-id-718418.html

    @Inject注入方式,用@Inject来标识那个方法被注入

    @ImplementedBy(Class)的注释方式。可以直接从你的接口指向一个缺省的实现,而省略掉对com.google.inject.Module的实现。其实这样就违背了多态的原则,一般使用较少,最后还是把控制权交给Module来处理。

    当 Guice 找到注释时,它会挑选构造函数参数,并试图为每个参数找到一个配置绑定。这称为 构造函数注入。根据 Guice 的最佳实践指南,构造函数注入是询问依赖项的首选方式。

    Guice通过@Inject标注来实现依赖注入,它根据作用的对象不同分为setter方法注入、构造方法注入、成员变量注入3种注入方式。在使用@Inject进行注入时,需要通过标注@ImplementedBy(SunyangImpl.class)来声明Sunyang接口的实现类。

    1.使用成员变量进行注入

    新建一个类,在类中添加类型为Sunyang的成员变量sunyang,通过@Inject标注声明该成员变量为被注入的变量,同时使用Guice的方法createInjector()将此变量注入,并用getInstance()方法将其取出。

    createInjector方法可以有多个参数,它的参数均为接口Module类型。没有参数时,Inject标注作用的属性全部进行注入,相反将参数的内容注入。属性必须存在于createInjector方法的类中,

    2.使用构造方法进行注入

    使用构造方法进行注入,需要在类中增加Sunyang类型的成员变量,然后定义一个包含Sunyang类型参数的构造方法,通过@Inject标注声明构造方法将其注入,在main方法中将其取出,并执行属性sunyang的print方法,如代码12-11所示。

    3.使用setter方法进行注入

    使用setter方法进行注入,需要在类中增加对成员变量设置的setter方法,同时通过标注@Inject将其声明,然后在main方法中将其取出,如代码12-12所示。

    @Singlegon

    refer this page:http://dreamzhong.iteye.com/blog/1141335  only one instance

  • 相关阅读:
    SQL Analytic Functions 分析函数
    SQL Cumulative Sum累积求和
    Data import/export of Netezza using external table
    重复数据分析的三个常用语法distinct, group by, partition by
    数据库开发常备技能
    Versioned table in Netezza
    主元素判断
    数据结构考研模糊知识点2.1
    数据结构考研模糊知识点1.2
    数据结构考研模糊知识点1.1
  • 原文地址:https://www.cnblogs.com/alterhu/p/4032587.html
Copyright © 2011-2022 走看看