Guice

Guice

(from Google Bob Lee's IoC)
Dependency Injection, DI
Inversion of Control, IoC

It's another IoC container, which like a cousin of Spring IoC.
[list][*]Spring uses xml, provide IoC, Aop and peripheral service;[*]Guice uses Annotatin, each has their strongpoint, it's hard to say which one is better[/list]
Just use them in proper place !

Usage 1:

[code]
//1)
public interface MyService {
void myMethod();
}

//2)
public class MyServiceImpl implements MyService {
public void myMethod() {
System.out.println("Hello, World!");
}
}

//3) Add annotation of "@Inject"
public class Client {
//If define @Inject for this field, the set method isn't required
MyService service;

@Inject
void setService(MyService service) {
this.service = service;
}

public void myMethod() {
service.myMethod();
}
}

//4) Like Spring's beans.xml
public class MyModule implements Module {
public void configure(Binder binder) {
binder.bind(MyService.class).to(MyServiceImpl.class).in(Scopes.SINGLETON);
}
}

//5)
public class Test {
public static void main(String[] args) {
//IoC Container, the heart of the Guice framework
Injector injector = Guice.createInjector(new MyModule());

Client client = injector.getInstance(Client.class);
client.myMethod();
}
}
[/code]

Usage 2:
[code]
//1)
@ImplementedBy(MyServiceImpl.class)
public interface MyService {
void myMethod();
}

//2)
public class MyServiceImpl implements MyService {
public void myMethod() {
System.out.println("Hello, World!");
}
}

//3)
public class Client {
@Inject
private MyService service;

public void myMethod() {
service.myMethod();
}
}

//4)
public class MyModule implements Module {
public void configure(Binder binder) {}
}

//5) Test
[/code]

Note: Some code snippet are from Robbin's Blog.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值