|
Spring |
Guice |
使用XML
|
使用将类与类之间的关系隔离到xml中,由容器负责注入被调用的对象,因此叫做依赖注入 |
不使用xml,将类与类之间的关系隔离到Module中,声名何处需要注入,由容器根据Module里的描述,注入被调用的对象。 |
使用Annotation |
|
使用
支持自定义Annotation标注,对于相同的接口定义的对象引用,为它们标注上不同的自定义Annotation注释,就可以达到同一个类里边的同一个接口的引用,注射给不同的实现,在Module里用标注做区分,灵活性大大增加。
使用Annotation也未必是好事,范型等新特性也未必是好事,目前大多的服务器均不支持jdk1.5,wls要9以前才支持,而目前的客户由于价格原因也很少选用wls9的,至少我们做过的项目中都没有。功能再强,客户不需要,何用?
|
运行效率 |
装载spring配置文件时,需解析xml,效率低,getBean效率也不高,不过使用环境不会涉及到getBean,只有生产环境的时候会用到getBean,在装载spring应用程序的时候,已经完成全部的注射,所以这个低效率的问题不是问题。 |
使用Annotation,cglib, 效率高与spring最明显的一个区别,spring是在装载spring配置文件的时候把该注入的地方都注入完,而Guice呢,则是在使用的时候去注射,运行效率和灵活性高。
|
类耦合度 |
耦合度低,强调类非侵入,以外部化的方式处理依赖关系,类里边是很干净的,在配置文件里做文章,对类的依赖性极低。 |
高,代码级的标注,DI标记@inject侵入代码中,耦合到了类层面上来,何止侵入,简直侵略,代码耦合了过多guice的东西,大大背离了依赖注入的初衷,对于代码的可维护性,可读性均不利 |
类编写时 |
需要编写xml,配置Bean,配置注入 |
只需声明为@inject,等着被注入,
最后在统一的Module里声明注入方式
|
仅支持IOC |
否,spring目前已经涉猎很多部分 |
是,目前仅仅是个DI容器 |
是否易于代码重构 |
统一的xml配置入口,更改容易 |
配置工作是在Module里进行,和spring异曲同功 |
支持多种注入方式 |
构造器,setter方法 |
Field,构造器,setter方法 |
灵活性 |
|
1,如果同一个接口定义的引用需要注入不同的实现,就要编写不同的Module,烦琐
2,动态注入
如果你想注射的一个实现,你还未知呢,怎么办呢,spring是没办法,事先在配置文件里写死的,而Guice就可以做到,就是说我想注射的这个对象我还不知道注射给谁呢,是在运行时才能得到的的这个接口的实现,所以这就大大提高了依赖注射的灵活性,动态注射。
|
与现有框架集成度 |
1, 高,众多现有优秀的框架(如struts1.x等)均提供了spring的集成入口,而且spring已经不仅仅是依赖注入,包括众多方面。
2, Spring也提供了对Hibernate等的集成,可大大简化开发难度。
3, 提供对于orm,rmi,webservice等等接口众多,体系庞大。
|
1,可以与现有框架集成,不过仅仅依靠一个效率稍高的DI,就想取代spring的地位,有点难度。 |
配置复杂度 |
在xml中定位类与类之间的关系,难度低 |
代码级定位类与类之间的关系,难度稍高 |
相关推荐
Guice与Spring框架的区别 Guice与Spring框架都是依赖注入(Dependency Injection,DI)容器,它们的主要作用是将对象之间的依赖关系解耦,使得系统更加灵活、可维护和可扩展。下面我们来讨论Guice和Spring框架的...
"DI容器框架Google Guice与Spring框架的区别" 这个标题表明我们要探讨的是两种不同的依赖注入(Dependency Injection,简称DI)容器——Google Guice和Spring框架之间的差异。DI是一种设计模式,它帮助开发者在对象...
guice-spring-1.0.jar
标题 "guice-spring-3.2.3.zip" 提示我们关注的是Guice与Spring框架的一个特定版本的集成,即Guice 3.2.3与Spring的整合。Guice是一个轻量级的依赖注入(DI)框架,由Google开发,它允许开发者通过注解来管理对象的...
Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、...
此外,文章可能还会涵盖Guice与其他依赖注入框架(如Spring)的对比,以突出Guice的轻量化和灵活性。 总之,Guice是一个强大的工具,能帮助开发者构建松散耦合、易于测试和维护的Java应用。通过深入学习和实践,你...
Guice-3.0是Guice的一个版本,包含了核心库guice-3.0.jar,以及与Spring和Struts2集成的扩展库guice-spring-3.0.jar和guice-struts2-plugin-3.0.jar。 1. **Guice核心概念**: - **依赖注入**:Guice的核心机制,...
Google Guice 这个高效的与Spring类似的依赖注入框架; MyBatis配置和使用; Google Guice与MyBatis集成,支持注解事务,简单的无法想象; Mybatis与mysql集成;实现发送邮件轮询; 源码是个web项目,里面有数据库的...
- **对比Guice与其他框架**:了解Guice与Spring等其他框架之间的异同。 - **未来展望**:探索Guice的发展方向以及如何将其标准化到未来的Java EE或SE规范中。 - **实战应用**:学习如何使用Guice构建真实的Web应用...
5. `guice-spring-1.0.jar`:这个扩展允许Guice与Spring框架协同工作,让两个强大的依赖注入框架能够无缝交互。 6. `javadoc`:包含了Guice的API文档,对理解和使用Guice非常有帮助。 Guice的使用步骤通常包括: 1....
10. **轻量级**:Guice相比于Spring等大型框架,体积小巧,使用简单,特别适合小型项目或作为大型项目的局部依赖注入解决方案。 总之,Guice作为一款轻量级的依赖注入框架,以其简洁的API和注解驱动的设计,极大地...
8. **Spring Cloud Sleuth**:分布式跟踪解决方案,它可以与 Zipkin 或 ELK (Elasticsearch, Logstash, Kibana) 集成,帮助我们理解微服务架构中的请求传播路径。 9. **Spring Cloud Task**:用于简化短生命周期...
在 Play 2.4 中使用 Spring ApplicationContext 作为 Guice 模块。 我帮助做到这一点。
Guice以其简洁的API和对Java注解的充分利用,成为了Java开发中一个受欢迎的选择,尤其是对于那些不希望使用更大型的IoC框架如Spring的项目。 Guice的核心概念包括: 1. **依赖注入**:Guice通过构造函数、字段或...
与 Spring AOP 相比,Guice 更为简单,启动速度更快,这得益于它的设计哲学:避免不必要的复杂性。Guice 提供了 `Interceptor` 接口,可以创建自定义拦截器来处理 Shiro 的权限注解。通过这种方式,当一个方法带有 ...
Guice与传统的XML配置的IoC框架(如Spring)相比,更加简洁且易于理解和使用。由于其轻量级的特性,它非常适合小型项目和嵌入式系统,同时也可作为大型项目的基础架构组件。 在实际开发中,结合Guice的**Easy Pool*...
guice-3.0.jar ,Guice是Google开发的一个轻量级依赖注入框架(IOC)。Guice非常小而且快,功能类似与Spring,但效率上网上文档显示是它的100倍,而且还提供对Servlet,AOP,Struts等框架的支持;
标题 "GuiceSpring.rar" 和描述中的 "GuiceSpring.rar" 暗示了这个压缩包可能包含了关于Google Guice和Spring框架集成的相关资料。标签 "GuiceSpring" 进一步确认了这一主题。虽然没有具体的文件内容可以参考,但...