guice基本使用,三种注入方式(二)
2024-10-20 08:43:00
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();
}
}
结果就是你想要的...
平时用得最多,估计属性注入最方便了。但是也有特殊情况,一切看项目需要来做了。。。
下一篇研究一下绑定的几种方式吧。。。
最新文章
- yii2 控制器、方法命名规范和访问路由
- Oracle----Job
- android ant 多渠道批量打包
- linux 系统 tar 的用法详解
- js 创建List<;Map>; 这种格式的集合
- oracle行转列、列转行
- 【用PS3手柄在安卓设备上玩游戏系列】谈安卓游戏对手柄的支持
- Mybatis配置(一)
- Django 模版中如何对主菜单进行选中?
- animate.css 动画的使用
- mysql中导入导出sql文件
- 2017-12-15python全栈9期第二天第五节之while else的用法二当不被break打断时else内容的结果会被打印
- numpy unable to find vcvarsall.bat
- Selenium2+python自动化62-jenkins持续集成环境搭建【转载】
- JavaScript 继承——三种继承方法及其优劣
- Redis等缓存数据库为什么访问会比较快?
- passwd命令详解
- 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误
- 粗略了解fill与fill_n
- bootstrap学习笔记 多媒体对象