当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

Guice与Spring框架的辨别[Java编程]

赞助商链接



  本文“Guice与Spring框架的辨别[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

依靠注入,DI(Dependency Injection),它的作用自然没必要多说,说起DI容器,比方spring,picoContainer,EJB容器等等,近日,谷歌诞生了更轻盈的DI容器……Guice!

废话不多讲了,先看看Guice是若何实现注入的吧.

定义一个简单的service接口和它的实现吧!

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

以上是最普通的接口和其实现,没什么可说的.

定义一个测试类,这个类里边包含service对象的一个引用,这个对象是需求Guice举行注入的.

import com.谷歌.inject.Inject;
public class Client ...{
MyService service;
@Inject //奉告容器,这里的service对象的引用,需求举行注入
void setService(MyService service) ...{ //这里的办法名字可以肆意定义
this.service = service;
}
public void myMethod() ...{
service.myMethod();
}
}

这里除了加了一个@Inject,和Spring的配置没有任何的辨别,@Inject,是表示对容器说,这里的service需求注射,等到运行的时刻,容器会拿来一个实例给service,完成注射的历程.

定义Guice的Module文件,奉告容器若何举行注入.

import com.谷歌.inject.Binder;
import com.谷歌.inject.Module;
import com.谷歌.inject.Scopes;
public class MyModule implements Module ...{
public void configure(Binder binder) ...{
binder.bind(MyService.class).to(MyServiceImpl.class).in(Scopes.SINGLETON);
// 这句代码的意思是说:运行时动态的将MyServiceImpl对象赋给MyService定义的对象,
并且这个对象是单例的.
}
}

成立测试类

import com.谷歌.inject.Guice;
import com.谷歌.inject.Injector;
public class Test ...{
public static void main(String[] args) ...{
MyModule module = new MyModule();// 定义注射法则
Injector injector = Guice.createInjector(module);// 按照注射法则,生成注射者
Client client = new Client();
injector.injectMembers(client);// 注射者将需求注射的bean,按照法则,把client这个客户端举行注射
client.myMethod();
}
}

运行测试类,掌握台输出:Hello,World!


  以上是“Guice与Spring框架的辨别[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • Guice与Spring框架的辨别
  • <b>Google Guice模范讲授之操纵入门</b>
  • Guice整合Struts2简易教程
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .