guice提供了强大的注入方式。

1.属性注入

2.构造器注入

3.set方式注入

1.属性注入:

 package com.ming.user.test;

 import com.google.inject.Inject;
import com.google.inject.Singleton; /**
* guice 不同的注入方式
* @author mingge
*
*/
@Singleton
public class TestInjection { @Inject
private Dao dao; void test(){ dao.testGuice();
} }

2.构造方法注入

 package com.ming.user.test;

 import com.google.inject.Inject;
import com.google.inject.Singleton; /**
* guice 不同的注入方式
*
* @author mingge
*
*/
@Singleton
public class TestInjection { private Dao dao; @Inject
public TestInjection(Dao dao) {
this.dao = dao;
} void test() { dao.testGuice();
} }

3.set方式注入

 package com.ming.user.test;

 import com.google.inject.Inject;
import com.google.inject.Singleton; /**
* guice 不同的注入方式
*
* @author mingge
*
*/
@Singleton
public class TestInjection { private Dao dao; @Inject
public void setDao(Dao dao) {
this.dao = dao;
} void test() { dao.testGuice();
} }

当然,在我们的module中需要绑定这个TestInjection这个类才可以用哦.

 package com.ming.user.test;

 import com.google.inject.AbstractModule;

 public class TestModule extends AbstractModule{

     @Override
protected void configure() {
bind(Dao.class).to(DaoImpl.class);
bind(TestDaoInjection.class);
}
}

测试代码如下:

 package com.ming.user.test;

 import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module; public class Test { public static void main(String[] args) {
Injector injector = Guice.createInjector(new TestModule());
TestDaoInjection test = injector.getInstance(TestDaoInjection.class);
test.test();
}
}

结果就是你想要的...

平时用得最多,估计属性注入最方便了。但是也有特殊情况,一切看项目需要来做了。。。

下一篇研究一下绑定的几种方式吧。。。

最新文章

  1. yii2 控制器、方法命名规范和访问路由
  2. Oracle----Job
  3. android ant 多渠道批量打包
  4. linux 系统 tar 的用法详解
  5. js 创建List<Map> 这种格式的集合
  6. oracle行转列、列转行
  7. 【用PS3手柄在安卓设备上玩游戏系列】谈安卓游戏对手柄的支持
  8. Mybatis配置(一)
  9. Django 模版中如何对主菜单进行选中?
  10. animate.css 动画的使用
  11. mysql中导入导出sql文件
  12. 2017-12-15python全栈9期第二天第五节之while else的用法二当不被break打断时else内容的结果会被打印
  13. numpy unable to find vcvarsall.bat
  14. Selenium2+python自动化62-jenkins持续集成环境搭建【转载】
  15. JavaScript 继承——三种继承方法及其优劣
  16. Redis等缓存数据库为什么访问会比较快?
  17. passwd命令详解
  18. 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误
  19. 粗略了解fill与fill_n
  20. bootstrap学习笔记 多媒体对象

热门文章

  1. EnforceLearning-主动强化学习
  2. [Intermediate Algorithm] - Finders Keepers
  3. 如何安全使用dispatch_sync
  4. Git创建本地分支并关联远程分支(二)
  5. PAT_A1105#Spiral Matrix
  6. 什么是Capability
  7. GDI 映射模式(11)
  8. iphone 事件冒泡规则
  9. 在LinuxMint19上安装搜狗拼音输入法
  10. SOA架构设计的案例分析