Guice 学习(一)永远的 Hello World

1、Guice是什么?

Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。

2、Guice和Spring的比较

和Spring有点类似,Guice也是个依赖注入框架,主要使用注解形式来完成依赖注入的过程,而不是像Spring一样主要使用XML(虽然也可以用注解,但是XML的配置还是作为Spring不可或缺的一部分),Guice的特点就是足够轻量级,对于一些对于性能要求(包括启动速度,运行期等等)要求比较高的应用来讲的话,使用Guice是一个很好的选择,Guice依赖的Jar包很少,对于项目的管理来讲也稍微轻松一点。缺点也有:Guice功能还不足够强,作为企业级的框架在功能上还是稍弱一些,代码的侵入性比较强,依赖关系无法像XML那么直观的描述(这个当然是对于那些习惯了XML来作为描述文件的人来讲,可能你习惯注解的方式,这个因人而异吧)。

3、下载jar包

下载Jar包 https://code.google.com/p/google-guice/ ,或者Maven依赖,将Guice所需的Jar包载入所使用的项目中去:

Maven依赖示例:

< dependency >

 < groupId >com.jolira</ groupId >

 < artifactId >guice</ artifactId >

 < version >3.0.0</ version >

4、包依赖

这里写图片描述

说明:javax.inject-1.jar是满足Java依赖注入标准(JSR-330)所需的,cglib和asm都是AOP所需的Jar包,aopalliance是AOP Java接口包。

5、HelloWorld

package com.guice.test2;

import com.google.inject.ImplementedBy;

/**
 * TODO : 使用了Guice提供的注解,ImplementedBy,表示该接口由HelloGuiceImpl类实现 这样我们就可以不手动的去配置依赖关系
 * 
 * @author E468380
 */
@ImplementedBy(HelloGuiceImpl.class)
public interface HelloGuice {
    public void sayHello();
}
package com.guice.test2;

public class HelloGuiceImpl implements HelloGuice {

    @Override
    public void sayHello() {
        System.out.println("Hello Guice !");

    }

}
package com.guice.test2;

import org.junit.Test;

import com.google.inject.Guice;
import com.google.inject.Injector;

/**
 * TODO : 在这里我们不需要再new一个module,Guice会根据我们提供的注解自己来配置依赖关系
 * 
 * @author E468380
 */
public class TestGuice {

    @Test
    public void testHelloGuice() {
        Injector injector = Guice.createInjector();
        HelloGuice helloGuice = injector.getInstance(HelloGuice.class);
        helloGuice.sayHello();
    }

}

输出结果:

Hello Guice !

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值