Google Guice 教程

2024-02-22 19:38
文章标签 教程 google guice

本文主要是介绍Google Guice 教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Google 近日宣布发布 Guice。Guice, 发音为'juice', 是Google内部使用的 Java依赖注入框架。Guice新版本宣布已经完全支持annotations 以及 generics.
Guice无配置文件,实用JDK5.0的annotation描述组件依赖,相比Spring更加简单。
Guice 能够注入 constructors, fields 以及 methods (任何方法, 任意参数, 而不仅仅是setter方法), 同时Guice还支持自定义scopes,循环依赖, 静态成员注入, 整合Spring, 以及AOP. 相比Spring拥有更加强大的功能.
xwork2.0已经集成了Google guice容器。同时Google guice的速度比Spring快了100倍.

Guice的工作流程是这样的:
  1.        首先将自己创建的Module传给Guice.createInjector(),Guice会为你的Module创建一个binder,你的Module利用这个binder来实现各种绑定,然后Guice再创建一个Injector出来,我们就可以利用这个Injector来Inject我们的服务了,就是将服务的类传入,则可以对这个类实现注入了

  2.        只是写了个简单的例子,了解了下Guice的流程,肤浅的来看Guice是脱离了配置文件来描述依赖和被依赖之间的关系,都是通过注释的方式(申明注入点)和Module(注入的配置)来达到注入的目的,当然不一定非要Module来申明注入的配置,也可以在被注入的接口中用注释的方法申明对应的哪个实现最为注入的CLASS

  3.        不过,用注释的方式与类的耦合太高老,也不太利于维护,想象一下,在稍大的应用中,在XML配置中能一目了然的理清除各个bean之间的关系始终比要在各个类里面去找注入点好的多吧.
那使用Guice和传统的实例化方式有什么区别呢?

下边对于不同社会形态下一个人(java对象,调用者)需要一把斧子(java对象,被调用者)的例子:
  • 1原始社会时,劳动社会基本没有分工,需要斧子的人(调用者)只好自己去磨一把斧子,每个人拥有自己的斧子,如果把大家的石斧改为铁斧,需要每个人都要学会磨铁斧的本领,工作效率极低。

  •    对应java里的情形就是:JAVA程序的调用者new一个被调用者的实例。类耦合度极高,修改维护烦琐,效率极低。

  • 2、工业社会时,工厂出现,斧子不再由普通人完成,而由工厂生产,当人们需要斧子的时候,可以到工厂购买斧子,无需关心斧子是怎么制造出来的,如果废弃铁斧为钢斧,只需改变工厂的制造工艺即可,制作工艺是工厂决定的,工厂生产什么斧子,工人们就得用什么斧子。

  • 对应java里的情形就是:JAVA程序的调用者可以以来简单工厂创建被调用者,变化点被隔离到了简单工厂里,虽然耦合度降低,但是调用者会和工厂耦合,而且需要定位自己的工厂。

  • 3、近代工业社会,工厂蓬勃发展,人们需要什么斧子,只需要提供一个斧子图形,商家会按照你提供的图形将你的斧子订做好,送上门。

  • 对应java里的情形就是:spring的依赖注入。

  • 4、进入按需要分配社会,信息进入现代化,人们不再去工厂购买斧子,不再拘泥于需要什么斧子事先画好什么样的图形,只需要打个电话,描述一下需要什么类型的斧子,或许想打造一个物美价廉的斧子,商家会根据市场零件的价格,计算出最优制作工艺,打造最适合的斧子送过来,更加信息化,更加人性化。

  • 对应java里的情形就是:基于描述的注入,动态的,灵活简单的注入,如:Guice。

一下给一个使用了Guice的实例代码: 
       Google Guice需要使用JDK1.5以上java环境

 使用com.google.inject.Module接口实现类

文件名
说明
           HelloGuice.java
               业务逻辑接口定义文件
           HelloGuiceImpl.java
                业务逻辑接口实现文件
           HelloGuiceModule.java
               该文件必须实现com.google.inject.Module接口
            TestGuice.java
                 测试文件









这篇关于Google Guice 教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/736280

相关文章

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

MySQL 安装配置超完整教程

《MySQL安装配置超完整教程》MySQL是一款广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,目前属于Oracle公司旗下产品,:本文主要介绍MySQL安装配置... 目录一、mysql 简介二、下载 MySQL三、安装 MySQL四、配置环境变量五、配置 MySQL5.1

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

Logback在SpringBoot中的详细配置教程

《Logback在SpringBoot中的详细配置教程》SpringBoot默认会加载classpath下的logback-spring.xml(推荐)或logback.xml作为Logback的配置... 目录1. Logback 配置文件2. 基础配置示例3. 关键配置项说明Appender(日志输出器

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal