Guice 学习(一)永远的 Hello World
来源:互联网 发布:机器猫tv软件 编辑:程序博客网 时间:2024/06/05 17:45
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
- Guice 学习(一)永远的 Hello World
- 永远的 Hello World
- 永远不变的Hello World
- Android学习笔记(1)-永远不变的Hello World
- Guice学习(一)
- Python学习笔记(一)Hello World
- maven学习笔记(一)hello world
- springMVC学习笔记一(hello world)
- BeeFramework学习(一):Hello World
- maven学习(一)--Hello World
- jquery学习(一)hello world
- React学习(一)Hello world
- mybatis学习(一)--hello world
- RabbitMQ学习一:hello world
- Linux设备驱动程序学习(一)入门必须的hello world
- Rack学习笔记一,一个简单的hello world
- Lucene(一)hello world
- Objective-C 学习笔记(一)hello world和基础
- 精度(Precision)与召回率(Recall) 以及ROC曲线
- gcc phi结构体
- 确实进程内部运行线程情况
- linux expr命令参数及用法
- 一种一致性HASH算法的实现方法,附核心代码
- Guice 学习(一)永远的 Hello World
- 当工作累了,看看这个
- android中 include标签的使用,以及xUtils处理 include的方式
- iOS自动布局-Auto Layout
- 一个模仿布卡那样的划动手势看在线漫画的简单应用DEMO
- 重要通知:博客迁移至 ZYaller
- dubbox消费端和服务端
- Java操作PDF之iText超入门
- Windows API timeGetTime Intro