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
google guice @inject comments的更多相关文章
- Google Guice学习
学习动力:公司项目使用 官方文档:https://github.com/google/guice/wiki/Motivation 学习阶段:入门 主要部份: 简介 Bindings方式 Scopes设 ...
- 依赖注入框架Google Guice 对象图
GettingStarted · google/guice Wiki https://github.com/google/guice/wiki/GettingStarted sameb edited ...
- Google Guice 之绑定1
绑定和依赖注入区别 绑定,使用时 需要通过 injector 显示获取 依赖注入,只需要显示获取主类,他的依赖是通过@Injector 和 绑定关系 隐式注入的 http://blog.csdn.ne ...
- google guice
1 google guice是什么 google guice是一个轻量的DI容器. 2 guice和spring对比 spring的配置放在xm文件中,guice的配置放在Module中. guice ...
- 史上最好用的依赖注入框架Google Guice【转】
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC).Guice非常小而且快. (其他的依赖注入框架还有Dagger,Spring) Spring ...
- jdbc框架 commons-dbutils+google guice+servlet 实现一个例子
最近闲着无聊,于是看了一下jdbc框架 commons-dbutils与注入google guice. 我就简单的封装了一下代码,效率还是可以的.... jdbc+google guice+servl ...
- 【曹工杂谈】Maven IOC容器的下半场:Google Guice
Maven容器的下半场:Guice 前言 在前面的文章里,Maven底层容器Plexus Container的前世今生,一代芳华终落幕,我们提到,在Plexus Container退任后,取而代之的底 ...
- Google Guice结合模式
于Guice于,喷油器装配工作是一个对象图,当请求类型实例,喷油器根据推断对象如何映射到创建的实例.解决依赖.要确定如何解决的依赖就需要配置喷油器结合的方式. 要创建绑定(Binding)对象,能够继 ...
- 开源介绍:Google Guava、Google Guice、Joda-Time
一.Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency lib ...
随机推荐
- MySQL学习笔记:一道group by+group_concat解决的小问题
闲来无事,逛逛V2EX发现一道MySQL数据库题目,原题如下: 遂打开很长一段时间都没用过SQLyog,噗呲噗呲的干起活来…… 建测试表: CREATE TABLE test_001 ( id INT ...
- 设计模式【转自JackFrost的博客】
首先,感谢作者对知识的分享 使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.设计模式使代码编制真正工程化,是软件工程的基石脉络,如同大厦的结构一样. 文章结构:1.单一职责原则( ...
- 关键字super和this的使用及区别
"this"作为一个特殊的关键字,它的规则如下: 1.可以表示构造函数传递.this(a,b)表示调用另外一个构造函数.这里面的this就是一个特殊语法,不是变量,没有什么类型. ...
- 096实战 在windows下新建maven项目
1.拷贝settings到.m2文件下 2.修改文件 3.新建Project项目 4.转换为maven项目 config下转换 5.拷贝pom文件 <project xmlns="ht ...
- 095实战 ETL的数据来源,处理,保存
1.ETL 数据来源:HDFS 处理方式:Mapreduce 数据保存:HBase 2.为什么保存在Hbase中 数据字段格式不唯一/不相同/不固定,采用hbase的动态列的功能非常适合 因为我们的分 ...
- css实现幻灯片播放效果
用css实现幻灯片播放是最基础的,闲下来没事就试着写了一下,如果有不够完善或者方法不好的地方还请指点.下面我就用两种方法实现css花灯片效果. 方法1:定位.通过position属性改变left值 h ...
- 003.Kickstart部署之HTTP架构
一 准备 1.1 完整架构:Kickstart+DHCP+HTTP+TFTP+PXE 1.2 组件应用 Kickstart服务端IP:172.24.8.12 DHCP:提供客户端IP,网关,镜像路径等 ...
- VM浏览器不能访问
Issue: when start WAS DManager&WAS AppServer then it could be reach in VM local browser but coul ...
- RBF(径向基)神经网络
只要模型是一层一层的,并使用AD/BP算法,就能称作 BP神经网络.RBF 神经网络是其中一个特例.本文主要包括以下内容: 什么是径向基函数 RBF神经网络 RBF神经网络的学习问题 RBF神经网络与 ...
- loj#2665. 「NOI2013」树的计数
目录 题目链接 题解 代码 题目链接 loj#2665. 「NOI2013」树的计数 题解 求树高的期望 对bfs序分层 考虑同时符合dfs和bfs序的树满足什么条件 第一个点要强制分层 对于bfs序 ...