博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
guice基本使用,三种注入方式(二)
阅读量:5894 次
发布时间:2019-06-19

本文共 2016 字,大约阅读时间需要 6 分钟。

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

1.属性注入

2.构造器注入

3.set方式注入

 

1.属性注入:

1 package com.ming.user.test; 2  3 import com.google.inject.Inject; 4 import com.google.inject.Singleton; 5  6 /** 7  * guice 不同的注入方式 8  * @author mingge 9  *10  */11 @Singleton12 public class TestInjection {13 14     @Inject15     private Dao dao;16     17     void test(){18         19         dao.testGuice();20     }21     22 }

2.构造方法注入

1 package com.ming.user.test; 2  3 import com.google.inject.Inject; 4 import com.google.inject.Singleton; 5  6 /** 7  * guice 不同的注入方式 8  *  9  * @author mingge10  *11  */12 @Singleton13 public class TestInjection {14 15     private Dao dao;16 17     @Inject18     public TestInjection(Dao dao) {19         this.dao = dao;20     }21 22     void test() {23 24         dao.testGuice();25     }26 27 }

3.set方式注入

1 package com.ming.user.test; 2  3 import com.google.inject.Inject; 4 import com.google.inject.Singleton; 5  6 /** 7  * guice 不同的注入方式 8  *  9  * @author mingge10  *11  */12 @Singleton13 public class TestInjection {14 15     private Dao dao;16 17     @Inject18     public void setDao(Dao dao) {19         this.dao = dao;20     }21 22 23     void test() {24 25         dao.testGuice();26     }27 28 }

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

1 package com.ming.user.test; 2  3 import com.google.inject.AbstractModule; 4  5 public class TestModule extends AbstractModule{ 6  7  8     @Override 9     protected void configure() {10         bind(Dao.class).to(DaoImpl.class);11         bind(TestDaoInjection.class);12     }13 }

测试代码如下:

1 package com.ming.user.test; 2  3 import com.google.inject.Guice; 4 import com.google.inject.Injector; 5 import com.google.inject.Module; 6  7  8 public class Test { 9     10     public static void main(String[] args) {11          Injector injector = Guice.createInjector(new TestModule());  12          TestDaoInjection test = injector.getInstance(TestDaoInjection.class);  13          test.test();14     }15 }

结果就是你想要的...

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

 

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

 

 

 

 

 

 

 

转载地址:http://tzisx.baihongyu.com/

你可能感兴趣的文章
mvc做网站怎么在mvc中直接访问.html网页 [问题点数:20分]
查看>>
echart 折线图、柱状图、饼图、环形图颜色修改
查看>>
win7 32位支持多大内存|win7 32位旗舰版最多能识别多少内存
查看>>
ASP.NET MVC下使用AngularJs语言(五):ng-selected
查看>>
第2章 Python基础-字符编码&数据类型 综合 练习题
查看>>
Adobe Acrobat 9 Pro序列号
查看>>
怎样高速地安装Ubuntu SDK
查看>>
mybatis与分布式事务的面试
查看>>
如何在一张ppt中插入多张图片并能依次播放
查看>>
cocos creator热更新教程
查看>>
cookie的安全性问题
查看>>
ArcGIS 10.4的0x80040228许可错误
查看>>
SpringBoot Docker Mysql安装,Docker安装Mysql
查看>>
MT2018笔试题之计算数字位数
查看>>
第四百一十三节,python面向对象,组合、类创建的本质、依赖注入
查看>>
df -h和du -sh显示结果不一样的原因及解决
查看>>
amaze ui响应式辅助
查看>>
【ASP.NET Core】给中间件传参数的方法
查看>>
zabbix 基于JMX的Tomcat监控
查看>>
Android项目实战(十一):moveTaskToBack(boolean ) 方法的使用
查看>>