guice的基本使用(一)

guice是google一个轻量级的DI注入框架,现在比较强大了,也与目前流行的struts2、jpa等都有集成了。

先看一个例子:

1 package com.ming.user.test;
2
3 public interface Dao {
4     void testGuice();
5 }
 1 package com.ming.user.test;
 2
 3 import com.google.inject.Singleton;
 4
 5 @Singleton//声明此DaoImpl为单例
 6 public class DaoImpl implements Dao{
 7
 8     @Override
 9     public void testGuice() {
10
11         System.out.println("测试guice,实现依赖!");
12
13     }
14
15 }
 1 package com.ming.user.test;
 2
 3 import com.google.inject.AbstractModule;
 4 //需要继承AbstractModule这个类,用于绑定
 5 public class TestModule extends AbstractModule{
 6
 7     @Override
 8     protected void configure() {
 9         bind(Dao.class).to(DaoImpl.class);//这句代码的意思是说:运行时动态的将DaoImpl对象赋给Dao对象并且是单例的10     }
11
12 }
 1 package com.ming.user.test;
 2
 3 import com.google.inject.Guice;
 4 import com.google.inject.Injector;
 5
 6 public class Test {
 7
 8     public static void main(String[] args) {
 9          Injector injector = Guice.createInjector(new TestModule());
10          Dao dao = injector.getInstance(DaoImpl.class);
11          dao.testGuice();
12     }
13 }

这个是基本的单元测试入门例子了。

时间: 2024-08-09 15:24:20

guice的基本使用(一)的相关文章

开源介绍:Google Guava、Google Guice、Joda-Time

一.Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦.下面我们就开启优雅Java编程学习之旅! 项目相关信息: 官方首页:http://code.googl

Atitit.ioc 动态配置文件guice 设计原理

Atitit.ioc 动态配置文件guice 设计原理 1. Bat启动时注入配置文件1 2. ioc调用1 3. Ioc 分发器 配合 apche  MethodUtils.invokeStaticMethod2 1. Bat启动时注入配置文件 SET JAVA_HOME=C:\Program Files\Java\jdk1.8.0_71 set  RESIN-HOME=c:\resin-4.0.22 set classpath=%classpath%;%RESIN-HOME%\lib\jas

Google Guice之作用域

默认情况下,Guice获取一个实例时.每次都会返回一个新的对象. 这个行为能够通过scopes进行配置.Scopes同意你复用实例: 应用整个生命周期(@Singleton),会话(@Session),请求(@RequestScoped),Guice还提供为Web应用提供了一种Servlet扩展作用域.而且在Guice还能够自己定义范围. Guice使用注解来标识作用域,将注解加入到某一类型的实现类上: @Singleton public class InMemoryTransactionLog

Google Guice

Guice (读作"juice")是超轻量级的,下一代的,为Java 5及后续版本设计的依赖注入容器. 简介 Java企业应用开发社区在连接对象方面花了很大功夫.你的Web应用如何访问中间层服务?你的服务如何连接到登录用户和事务管理器?关于这个问题你会发现很多通用的和特定的解决方案.有一些方案依赖于模式,另一些则使用框架.所有这些方案都会不同程度地引入一些难于测试或者程式化代码重复的问题.你马上就会看到,Guice 在这方面是全世界做得最好的:非常容易进行单元测试,最大程度的灵活性和可

java轻量级IOC框架Guice

Guice是由Google大牛Bob lee开发的一款绝对轻量级的java IoC容器.其优势在于: 速度快,号称比spring快100倍. 无外部配置(如需要使用外部可以可以选用Guice的扩展包),完全基于annotation特性,支持重构,代码静态检查. 简单,快速,基本没有学习成本. Guice和spring各有所长,Guice更适合与嵌入式或者高性能但项目简单方案,如OSGI容器,spring更适合大型项目组织. 注入方式 在我们谈到IOC框架,首先我们的话题将是构造,属性以及函数注入

Google Guice之AOP

为增强依赖注入功能,Guice支持方法拦截器.通过这个特性可以让方法在每次执行前调用一个匹配(过滤)方法.这适用于横切性关注点(切面),例如事务控制,权限与日志记录等.因为拦截器将一个问题分割成切面而不是对象:所以拦截器使用又被称为面向切面编程(AOP). 大多数开发者不会直接编写方法拦截器,但是可能在一些类库中见到,需要进方法进行选择,创建一个拦截器并将它配置在Module中:例如Warp Persist. <span style="font-size:14px;">@R

Google Guice之牛刀小试

Google Guice由google推出的一开源软件,是超轻量级的,下一代的,为Java 5及后续版本设计的依赖注入容器,其功能类似于如日中天的Spring. 下面我们就来了解一下Guice,在此之前,先看一个官方例子:在应用程序中,要把所有的东西装配起来是一件很乏味的事件,这要涉及到连接数据,服务,表现层类等方面,这是一个比萨饼订购网站的计费代码例子用于这些方面的对比. public interface BillingService { /** * Attempts to charge th

Guice源码学习(一)基本原理

Guice是Google开发的一个开源轻量级的依赖注入框架,运行速度快,使用简单. 项目地址:https://github.com/google/guice/ 最新的版本是4.1,本文基于此版本. Guice的使用方法请参见我的前篇博文:<Guice 4.1教程> 0. Guice的使用范例 先分析最简单的例子 public interface Dog { void bark(); } public class BlackDog implements Dog{ @Override public

Guice示例

1.新建IWork接口: package com.kay.interfaces; public interface IWork { public void work(String workname);} 2.实现IWork接口: package com.kay.impl; import com.kay.interfaces.IWork; public class Workimpl implements IWork{ public void work(String workname) {