guice基本使用,配置模块的两种方式(三)
guice是使用module进行绑定的,它提供了两种方式进行操作.
第一种是继承AbstractModule抽象类.
package com.ming.user.test; import com.google.inject.AbstractModule; /**
* 继承 AbstractModule这个抽象类
* @author Administrator
*
*/
public class TestModule extends AbstractModule{ @Override
protected void configure() { bind(Dog.class).to(DarkDog.class); }
}
第二种是实现Module接口:
package com.ming.user.test; import com.google.inject.Binder;
import com.google.inject.Module; /**
* 实现module 接口
* @author mingge
*
*/
public class GoogleGuiceModule implements Module{ @Override
public void configure(Binder arg) {
arg.bind(Dog.class).to(DarkDog.class);
} }
例子代码如下:
package com.ming.user.test;
public class Dog {
void eat(){
System.out.println("父类的在go,go,go。。。");
}
}
package com.ming.user.test;
public class DarkDog extends Dog{
@Override
void eat() {
System.out.println("heeeelo");
//super.eat();
}
}
package com.ming.user.test; import com.google.inject.AbstractModule; /**
* 继承 AbstractModule这个抽象类
* @author Administrator
*
*/
public class TestModule extends AbstractModule{ @Override
protected void configure() { bind(Dog.class).to(DarkDog.class); }
}
package com.ming.user.test; import com.google.inject.Binder;
import com.google.inject.Module; /**
* 实现module 接口
* @author mingge
*
*/
public class GoogleGuiceModule implements Module{ @Override
public void configure(Binder arg) {
arg.bind(Dog.class).to(DarkDog.class);
} }
测试:
package com.ming.user.test; import com.google.inject.Guice;
import com.google.inject.Injector; public class Test { public static void main(String[] args) {
Injector injector = Guice.createInjector(new GoogleGuiceModule());
// Injector injector = Guice.createInjector(new TestModule()()); //跟上一行代码目标意义一样哦
Dog dog=injector.getInstance(Dog.class);
dog.eat();
}
}
我们项目用得最多的是AbstractModule,当然如果有特殊需要,你也可以扩张Module了。
下篇聊一聊绑定之类的......
guice基本使用,配置模块的两种方式(三)的更多相关文章
- spring配置属性的两种方式
spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...
- web.config文件中配置数据库连接的两种方式
web.config文件中配置数据库连接的两种方式 标签: 数据库webconfig 2015-04-28 18:18 31590人阅读 评论(1)收藏举报 分类: 数据库(74) 在网站开发 ...
- MyBatis配置数据源的两种方式
---------------------siwuxie095 MyBatis 配置数据源的两种方式 1.配置方 ...
- springmvc配置AOP的两种方式
spingmvc配置AOP有两种方式,一种是利用注解的方式配置,另一种是XML配置实现. 应用注解的方式配置: 先在maven中引入AOP用到的依赖 <dependency> <gr ...
- Spring Boot配置过滤器的两种方式
过滤器(Filter)是Servlet中常用的技术,可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,常用的场景有登录校验.权限控制.敏感词过滤等,下面介绍下Spring Boot配置过 ...
- jdk配置java_home的两种方式
在开发java项目的时候,要先安装jdk,安装完jdk之后我们要配置环境变量.今天说一下java home环境变量. 配置环境变量有两种方式,一种就是在计算机的环境变量里面配置.这个是很简单的.如果你 ...
- Appium 自动化测试配置wda的两种方式。
tips:WebDriverAgent是Appium1.6.3以后版本新添加的模块,为了让appium与iPhone(基于xcuitest)设备进行通信而添加的.但是,这个模块在是一个独立的项目,在使 ...
- Spring总结——控制反转,注入(配置和注解两种方式)
一.Spring的容器: 1.什么是控制反转:传统的方法,当某个java对象A需要调用对象B时,是由调用者(对象A)通过new关键字来创建对象B的(也可以说类A依赖类B),而在Spring中,则是由s ...
- web.config中配置数据库连接的两种方式
在ASP.NET中有两种配置数据库连接代码的方式,它们分别是 appSettings 和 connectionStrings .在使用 appSettings 和 connectionStrings ...
随机推荐
- Join 语句
select * from books as A join (select * from Orders) as B on A.BookId = B.BookId select A.BookId,Aut ...
- POST请求成功,但接口返回数据不正确
事件:使用Jmeter做APP的搜索接口测试,请求成功了,但无论keyword是什么“内容”(这里的内容是带引号的哦),接口返回的内容都是:未匹配到搜索结果 排查问题: keyword=“世界” st ...
- BZOJ 1426: 收集邮票 数学期望 + DP
Description 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且 买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡 ...
- res对象json,redirect
1.res.json() var express=require('express'); var app=express(); app.get('/',function(req,res){ //返回j ...
- Testbench文件编写纪要(Verilog)
之前在使用Verilog做FPGA项目中.以及其他一些不同的场合下,零散的写过一些练手性质的testbench文件,开始几次写的时候,每次都会因为一些基本的东西没记住.写的很不熟练,后面写的时候稍微熟 ...
- iptables 实现内网转发上网
介绍 通过iptables做nat转发实现所有内网服务器上网. 操作 首先开启可以上网的服务器上的内核路由转发功能.这里我们更改/etc/sysctl.conf 配置文件. [root@web1 /] ...
- em与当前元素的不解之缘
em是相对于当前元素的字体大小而言,比如font-size:14px;那么这个元素的1em=14px. 如果当前元素未定义字体大小,则会向上继承父元素的字体大小,如果当前元素的所有祖先元素都没有定义f ...
- CSS max-width: 0;
写CSS,大家都知道max-width是要在宽度超过后才会生效,但今天我发现一个神奇的现象, 为表格td加上max-width: 0;可以让上下两个表格自动对齐,这句的作用到底是什么还有待研究,今天先 ...
- 渗透实战(周三):Ettercap·ARP毒化&MITM中间人攻击
今天,我们来讲解如何对小型Wi-Fi局域网发动网络攻击
- HDU 1569 方格取数(2)
方格取数(2) Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 15 ...