Guice学习(一)

Guice是Google开发的一个轻量级依赖注入框架(IOC)。Guice非常小而且快,功能类似与Spring,但效率上网上文档显示是它的100倍,而且还提供对Servlet,AOP,Struts等框架的支持;这里是简单代码实现,首先要下载Guice包,http://code.google.com/p/google-guice/这里可以下载;程序结构如下

这里导入了guice包与inject包,最简单的实现;下面是相关代码:

UserDao实现

package com.wf.dao;public class UserDao {public boolean saveUser(){System.out.println("user have save");return true;}
}

UserService实现

package com.wf.services;import javax.inject.Inject;import com.wf.dao.UserDao;public class UserService {private UserDao userDao;@Injectpublic void setUser(UserDao userDao) {this.userDao = userDao;}public boolean saveUser(){boolean result = userDao.saveUser();System.out.println(result);return result;}
}

  下面是相当与Spring中xml的一个类MyModule

package com.wf.util;import com.google.inject.Binder;
import com.google.inject.Module;
import com.google.inject.Scopes;
import com.wf.services.UserService;public class MyModule implements Module {@Overridepublic void configure(Binder binder) {binder.bind(UserService.class).in(Scopes.SINGLETON);}}

  这三个类创建完毕后就可以测试了,下面是单元测试:

package com.wf.test;import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
import com.wf.services.UserService;
import com.wf.util.MyModule;import junit.framework.TestCase;public class Test extends TestCase {private UserService userService;protected void setUp() throws Exception {userService = new UserService();}public void testUserService(){Module module = new MyModule();Injector in = Guice.createInjector(module);in.injectMembers(userService);assertTrue(userService.saveUser());}
}

  以上是注入的简单实现,Guice还有与其它框架的结合使用,可能现在主流还是Spring,不过这个应该也会渐渐被大家注意;感谢Google

http://www.docin.com/p-296920972.html&uid=52823104?bsh_bid=93526465

 

转载于:https://www.cnblogs.com/wufengxyz/archive/2012/07/10/2585388.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机 不识u盘,电脑uefi不识别u盘怎么办

我们都知道uefi和bios是主流的两种主板配置。可是最近用户用u盘启动盘装系统的时候发现uefi识别不了u盘,那么遇到电脑uefi不识别u盘怎么办呢?下面小编就和大家介绍电脑uefi不识别u盘的解决方法,希望对大家有帮助。具体步骤如下:1、连续按bio…

apache缓存清理_深挖 Mybatis 源码:缓存模块

作者:AmyliaY出自:Doocs开源社区原文:my.oschina.net/doocs/blog/4549852MyBatis 中的缓存分为一级缓存、二级缓存,但在本质上是相同的,它们使用的都是 Cache 接口的实现。在这篇文章里,我们就来分析 Cache…

前端学习(504):垂直居中的第一种方式

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>居中布局一</title><style>.parent{wid…

HTML5游戏引擎Playcraft将于近日正式启动

HTML5游戏引擎Playcraft将于近日正式启动&#xff0c;该引擎5月时就已经发布了测试版&#xff0c;经过2个月的测试后&#xff0c;将于近日正式上线。创始人兼首席执行官马丁韦尔斯介绍说&#xff0c;playcraft是一个为游戏设计者提供的工具&#xff0c;工具优化了设计步骤&…

深度学习 相机标定_基于深度学习的多传感器标定

标定是确定不同坐标系的相互转换关系&#xff0c;是传感器数据融合的前提&#xff0c;特别是激光雷达和图像数据。这里以深度学习的方法训练CNN模型去回归坐标系转换的参数。主要是两个CNN模型&#xff1a;RegNet和CalibNet。RegNet应该是第一个深度卷积神经网络&#xff08;CN…

前端学习(505):垂直居中的第一种方式的优点和缺点

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>居中布局一</title><style>.parent{wid…

实现推拉ui样式_这推拉门隔断,我从没见过!直角设计同时划分3大功能区,太牛了...

这位业主要是说自家装修第二名&#xff0c;我想大概不会有人愿意称第一。就说这个操作我就没见过&#xff0c;推拉门隔断内部&#xff0c;再装大白墙拼接推拉门隔断&#xff0c;形成一个直角设计&#xff0c;同时划分3大功能区&#xff0c;属实是太牛了&#xff01;这和邻居想让…

前端学习(506):垂直居中的第二种方式

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>居中布局一</title><style>.parent{wid…

绘制半圆_Android Canvas 绘制小黄人

❝学习往往是枯燥的&#xff0c;如果能用一个有趣 Demo 来学习和练习技术&#xff0c;那对知识的掌握就会更牢固。我在学习 Canvas 绘制 API 的时候就是这样做的。❞截图镇楼效果图我觉得这个绘制小黄人的自定义 View 就很有意思&#xff0c;也为我后来工作中的自定义 View 实现…

利用旧手机自建anki服务器,废旧手机变身服务器,打造私人云盘

前提条件安装Linux Deploy 并安装系统1.点开左上角选择设置点击左上角进行初始设置1.勾选锁定wifi,防止休眠时wifi断开2.勾选cpu保持唤醒3.勾选开机启动 (可选)4. path变量设置&#xff0c;网上大部分都说手机上安装busybox后填写busybox安装命令包后的路径&#xff0c;其实Lin…

关于返回结构体的函数

【前言】写作本文&#xff0c;源于最近回复的 《汇编中函数返回结构体的方法》 一文。在网络上也已经有一些相关文章和相关问题&#xff0c;有的文章已经给出了一部分结果&#xff0c;但总体而言还缺少比较重要的结论。本文以分析 VC6 编译器&#xff0c;32 位架构为主来重复性…

无法确定当前的订阅失效日期_元器件失效率与失效分布

在汽车电子进行可靠性计算时&#xff0c;首先需要分析各个元器件的失效率与失效分布。元器件真实的失效率与失效分布应该是基于大量的实际数据统计得到的&#xff0c;但由于汽车电子没有专门的失效数据库&#xff0c;通常采用的是预估失效率的方法。目前业界公认的可以参考的标…

易邮服务器com组件注册失败,com组件注册失败有什么办法可以解决

COM组件实际上是系统内一些比较小的二进制可执行程序&#xff0c;它们能为应用程序&#xff0c;操作系统以及其他组件提供一定的服务。所以注册COM组件是一个重要的事情&#xff0c;但这同时也是win7系统的一个硬伤&#xff0c;win7系统注册COM组件总是失败&#xff0c;让人烦心…

前端学习(508):水平和垂直居中第一种方式

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>居中布局一</title><style>.parent{wid…

修改无效_解决docker部署gitlab时,clone地址无效和修改默认端口

部署&#xff1a;docker run -d -p 444:443 -p 88:88 -p 222:22 --name gitlab --restart always -v /usr/local/docker/gitlab/config:/etc/gitlab -v /usr/local/docker/gitlab/logs:/var/log/gitlab -v /usr/local/docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-cevim …

如何实现服务器转发客户端消息,socket 怎么实现服务器与客户端不停的互发消息呢?...

在 java Socket应用的 3-4节 我把老师的代码修改了一下可以手动输入文字让对面的服务器/客户端接受&#xff0c;下面是代码&#xff1a;//客户端package 通讯;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStrea…

前端学习(509):水平和垂直居中第二种方式

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>居中布局一</title><style>.parent{wid…