搜档网
当前位置:搜档网 › Guice与Spring框架的区别

Guice与Spring框架的区别

Guice与Spring框架的区别
Guice与Spring框架的区别

Guice与Spring框架的区别

依赖注入,DI(Dependency Injection),它的作用自然不必多说,提及DI容器,例如spring,picoContainer,EJ B容器等等,近日,google诞生了更轻巧的DI容器……Guice!

废话不多讲了,先看看Guice是如何实现注入的吧。

定义一个简单的service接口和它的实现吧!

以上是最普通的接口和其实现,没什么可说的。

定义一个测试类,这个类里边包括service对象的一个引用,这个对象是需要Guice进行注入的。

这里除了加了一个@Inject,和Spring的配置没有任何的区别,@Inject,是表示对容器说,这里的service需要注射,等到运行的时候,容器会拿来一个实例给service,完成注射的过程。

定义Guice的Module文件,告诉容器如何进行注入。

创建测试类

运行测试类,控制台输出:Hello,World!

完成注入过程

下面看看Guice还有哪些其它的使用特性。

1、如果在实现你确定MyService定义的对象,就要被注射为MyServiceImpl而不是其它的实现类的话,可以在M yService接口加上@ImplementedBy(MyServiceImpl.class)。

这样的话,在MyModule里的configure方法中就可以不加任何东西,容器就会自动注射给MyServiceImpl对象。

2、可以对Field进行注解式注入

在Client.java中也可以把这个@Inject标注在MyService service;的前边,如:@Inject MyService service;

3、可使用自定义Annotation标注。

那么Client.java需要改为:

MyModule.java中的configure方法内容需改为:

意思是说对于标注为MyInterface的MyService定义的对象进行注入。

进行Annotation标注的成员(Field,method,argument等)进行自定义Annotation标注,该成员既拥有该属性,可以在运行,根据这些成员的不同属性,做一些不同的事情 例如:spring的AspectJ,xdoclet等都是如此。

下边是我做了一下对比:

Guice

与Spring

的对比

Spring Guice

使用XML

使用将类与类之间的关系隔离到xml中,由容器负

责注入被调用的对象,因此叫做依赖注入

不使用xml,将类与类之间的关系隔离到Module中,声名何处需要注入,由容器根据Module里的描述,注入被调用的对象。

使用Annot ation

使用

支持自定义Annotation标注,对于相同的接口定义的对象引用,为它们标注上不同的自定义Annotation注释,就可以达到同一个类里边的同一个接口的引用,注射给不同的实现,在Module里用标注做区分,灵活性大大增加。

使用Annotation也未必是好事,范型等新特性也未必是好事,目前大多的服务器均不支持jdk1.5,wls要9以前才

支持,而目前的客户由于价格原因也很少选用wls9的,至少我们做过的项目中都没有。功能再强,客户不需要,何用?

运行效率

装载spring配置文件时,需解析xml,效率低,ge

tBean效率也不高,不过使用环境不会涉及到getBe

an,只有生产环境的时候会用到getBean,在装载sp

ring应用程序的时候,已经完成全部的注射,所以

这个低效率的问题不是问题。

使用Annotation,cglib, 效率高与spring最明显的一个区别,spri

ng是在装载spring配置文件的时候把该注入的地方都注入完,而G

uice呢,则是在使用的时候去注射,运行效率和灵活性高。

类耦合度

耦合度低,强调类非侵入,以外部化的方式处理依

赖关系,类里边是很干净的,在配置文件里做文章,

对类的依赖性极低。

高,代码级的标注,DI标记@inject侵入代码中,耦合到了类层面

上来,何止侵入,简直侵略,代码耦合了过多guice的东西,大大背

离了依赖注入的初衷,对于代码的可维护性,可读性均不利

类编写时需要编写xml,配置Bean,配置注入

只需声明为@inject,等着被注入,

最后在统一的Module里声明注入方式仅支持IOC 否,spring目前已经涉猎很多部分是,目前仅仅是个DI容器

是否易于

代码重构

统一的xml配置入口,更改容易配置工作是在Module里进行,和spring异曲同功支持多种

注入方式

构造器,setter方法Field,构造器,setter方法

灵活性

1,如果同一个接口定义的引用需要注入不同的实现,就要编写不同的Module,烦琐

2,动态注入

如果你想注射的一个实现,你还未知呢,怎么办呢,s pring是没办法,事先在配置文件里写死的,而Guice就可以做到,就是说我想注射的这个对象我还不知道注射给谁呢,是在运行时才能得到的的这个接口的实现,所以这就大大提高了依赖注射的灵活性,动态注射。

与现有框架集成度

1,高,众多现有优秀的框架(如struts1.x等)均

提供了spring的集成入口,而且spring已经不仅仅

是依赖注入,包括众多方面。

2,Spring也提供了对Hibernate等的集

1,可以与现有框架集成,不过仅仅依靠一个效率稍高的DI,就想

取代spring的地位,有点难度。

成,可大大简化开发难度。

3,提供对于orm,rmi,webservice等等接

口众多,体系庞大。

配置复杂

在xml中定位类与类之间的关系,难度低代码级定位类与类之间的关系,难度稍高

再借斧子的例子说一说spring与guice的区别。

看下边对于不同社会形态下一个人(java对象,调用者)需要一把斧子(java对象,被调用者)的例子:

(1)原始社会时,劳动社会基本没有分工,需要斧子的人(调用者)只好自己去磨一把斧子,每个人拥有自己的斧子,如果把大家的石斧改为铁斧,需要每个人都要学会磨铁斧的本领,工作效率极低。

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

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

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

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

对应Java里的情形:spring的依赖注入

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

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

对于该不该使用Guice,我想也是仁者见仁,智者见智,就象好多论坛里动不动有人会在那里讨论到底学Java还是学.net或者是使用eclipse还是Jbuilder的这类无聊话题,适合和满足项目需求的,又能省工省力简单的完成工作的,就是最好的。

SpringMVC配置的基本步骤

Springmvc框架配置步骤 小弟是个新手,有不对的地方请tell me,一起研究探讨。谢谢。 1062140832@https://www.sodocs.net/doc/5e6211190.html, 配置springmvc框架其实不是很难,要现有一个总体的认识,确定要分几步,每一步主要是干什么,不要太盲目。 以为web.xml是项目的入口,所以所有的配置文件,都必须引入到wem.xml中,不然,配置了等于没用。所以,要先从入口入手。 配置web.xml 1、首先引入springmvc-servlet.xml文件 springMVC org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/mvc/springmvc-servlet.xml 1 2、将spring加载到web.xml中 org.springframework.web.context.ContextLoaderListener 3、配置上下文路径 contextConfigLocation /WEB-INF/spring/spring.xml,/WEB-INF/spring/spring-*.xml 说明:如果有很多的关于spring的配置文件,建议分开写,比如事务一个文件(spring-transaction.xml),springmvc-hibernate.xml一个配置文件,这样方便读写。

简介Java的Spring框架的体系结构以及安装配置

体系结构 Spring有可能成为所有企业应用程序的一站式服务,然而,Spring是模块化的,使您可以挑选哪些模块是适用的,而不必把在余下的也引入。以下部分给出详细介绍在Spring框架中所有可用的模块。 Spring框架提供约20个模块,可以根据应用程序的要求来使用。 网店转让

响应式网站制作 p2p网站制作 a货包包

游戏制作学习 核心容器: 核心容器组成的核心,Beans,上下文和表达式语言模块,其细节如下: 核心模块提供了框架的基本组成部分,包括IoC和依赖注入功能。 Bean模块提供BeanFactory是工厂模式的经典实现。 Context 上下文模块建立在由核心和Bean类模块提供了坚实的基础,它是访问定义和配置的任何对象的媒介。在ApplicationContext接口是上下文模块的焦点。. 表达式语言模块提供了在运行时查询和操作对象图的强大的表达式语言。 数据访问/集成: 数据访问/集成层包括JDBC,ORM,OXM,JMS和事务处理模块,其细节如下: JDBC模块提供了不再需要冗长的JDBC编码相关了JDBC的抽象层。 ORM模块提供的集成层。流行的对象关系映射API,包括JPA,JDO,Hibernate和iBatis。OXM模块提供了一个支持对象/ XML映射实现对JAXB,Castor,使用XMLBeans,JiBX和XStream的抽象层。 Java消息服务JMS模块包含的功能为生产和消费的信息。 事务模块支持编程和声明式事务管理实现特殊接口类,并为所有的POJO。 Web: 在Web层包括网络,Web-Servlet,Web-Struts和网络的Portlet组件,其细节如下:Web模块提供了基本的Web开发的集成特性,例如多方文件上传功能和使用的servlet监听器的IoC容器初始化和针对Web的应用程序上下文。 Web-Servlet 模块包含Spring的模型- 视图- 控制器(MVC)实现Web应用程序。Web-Struts 模块包含支持类内的Spring应用程序集成了经典的Struts Web层。 Web-Portlet模块提供了MVC实现在portlet环境中使用和镜子Web的Servlet的模块的功能。

Spring MVC 框架搭建及详解

Spring MVC 环境搭建及详解 一、Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar、spring-webmvc.jar、commons-logging.jar、 cglib-nodep-2.1_3.jar Hibernate 3.6.8:hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、antlr-2.7.6.jar、commons-collections-3.1、dom4j-1.6.1.jar、javassist-3.12.0.GA.jar、jta-1.1.jar、 slf4j-api-1.6.1.jar、slf4j-nop-1.6.4.jar、相应数据库的驱动jar包 2. web.xml配置(部分) spring org.springframework.web.servlet.DispatcherServlet 1

spring *.do org.springframework.web.context.ContextLoaderListene r contextConfigLocation classpath:config/applicationContext.xml 3. spring-servlet.xml配置

SSM基础框架搭建(SpringMVC+Spring+Mybatis)

SSM基础框架搭建(SpringMVC+Spring+Mybatis) SSM框架简述 到现在用了SSM框架也有一段时间了,对于基础的使用已经基本习惯,这段时间也多多少少搭了很多遍基础框架,当然每一次的搭建都会比原先搭建的东西更多些,也会更加完善,我相信大家也会从搭建的过程中成长去学到很多东西,SSM框架网上也有很多教程,不过我相信每个编写以及阅读的人总会从相似的文章中学到不同的东西. SSM框架基础概念 Spring 这里不得不说Spring非常强大,Spring拥有这IOC(控制反转,依赖注入)和AOP(面向切面编程)这两个强大的功能,这两个功能使框架足够的解耦,通过工厂模式和bean的配置完成对象的注入并且由bean生成的对象是单例的 SpringMVC SpringMVC分离了控制器,验证器,Servlet分发器,模型对象等 Mybatis Mybatis解除了程序与代码的耦合度,在一定程度上简化了sql的管理,只需要在XML中进行相应SQL的编写即可,Mybatis提供了相应的映射,配置起来更加容易 SSM基础框架搭建 这里就直接介绍SSM框架如何搭建了,至于环境配置和MAVEN项目的创建可以参考我的博客,也可以参考环境搭建,MAVEN项目搭建,下面开始搭建的教程,可能是对于上文链接博客的整合的完善与一些细微错误的纠正吧。 引入相关的JRA包 4.0.2.RELEASE 3.2.6 1.7.7 1.2.17 junit junit 4.11

Spring MVC 框架搭建及详解

14-4-13Spring MVC 框架搭建及详解 - OPEN 开发经验库 https://www.sodocs.net/doc/5e6211190.html,/lib/v iew/open1338338587698.html 1/7 登录 注册 Java开源PHP开源JS脚本大全OPEN家园OPEN经验库OPEN文档OPEN资讯OPEN论坛 经验搜索 推荐:jQuery MiniUI,Web界面控件库! 所有分类 > 软件开发 > Web框架 > Spring MVC Spring MVC 框架搭建及详解 您的评价: 收藏该经验 文件夹请选择...标签 (多个标签用逗号分隔) 现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理。 一、Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar、spring-webmvc.jar、commons-logging.jar、cglib-nodep-2.1_3.jar Hibernate 3.6.8:hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、antlr-2.7.6.jar、commons-collections-3.1、dom4j-1.6.1.jar、javassist-3.12.0.GA.jar、jta-1.1.jar、slf4j-api-1.6.1.jar、slf4j-nop-1.6.4.jar、相应数据库的驱动jar包 2. web.xml配置(部分) 01 020304 s p r i n g 05 o r g .s p r i n g f r a m e w o r k .w e b .s e r v l e t .D i s p a t c h e r S e r v l e t 06 12 11314 1516 s p r i n g 17 *.d o 1819 20 21 22232425 o r g .s p r i n g f r a m e w o r k .w e b .c o n t e x t .C o n t e x t L o a d e r L i s t e n e r

Spring+mybatis环境搭建

Spring3.0.6 +mybatis 3.0.6 搭建Spring: 上个星期天开始做老师给的东西,这次打算用上刚学习了得MyBatis,然后就还想要要能上JAVA里面很强大的很好用的Spring框架,但是我以前也没有学过,直接是硬着头皮来做的。因为我采用的是mybatis-3.0.6-bundle+spring-3.0.6.RELEASE这两个版本的整合,都比较新,所以网上资料还是很少的。所以遇到了很多问题,故作此次总结,希望以后能帮助到各位。 准备工作: 1. 的。 2.解压spring-framework- 3.0.6.RELEASE-with-docs.zip,找到dist目录,下面的就是spring会 用到的jar包了,具体jar包得作用如下:

搭建Spring步骤: 3.在myeclipse中新建一个web项目,名字叫做T estSpring2,为了省事,直接将上面所有 的spring的jar包导入lib文件夹。具体也可以根据上面有选择性的导入。 4.新建spring的配置文件,名字可以随便起,但是要注意,这个文件的路径是需要在web.xml 中配置的,我起名叫做ApplicationContext.xml,放在了web-inf目录下,内容如下:

记得如果拷贝这里的内容最好先拷贝到记事本,再拷贝到myeclipse下面去,就不会报错了。 5. 按理来上,做好上面的配置,spring就应该配置好了。但是,如果此时部署到tomcat,在tomcat的config目录中server.xml的最后倒数第三行左右,在这个结束标签之前加入如下配置: 6.此时,启动tomcat,会报如下的错误:

Struts+Spring+Hibernate框架搭建

整合SSH框架 整合框架版本:hibernate-distribution-3.6.0.Final-dist + spring-framework-2.5.6.SEC01-with-dependencies + struts-2.1.8.1 一、搭建工具 Windows 、Tomcat 6.0+ 、MyEclipse、SQLServer2008 R2 、Google 二、创建工程 新建WEB项目工程(MyEclipse),包含web.xml配置文件。 三、添加框架环境Junit4 右击新建的项目,选择Build Path —> Add Library —> Junit —> 选择Junit4 —> 确定完成单元测试的添加。 四、添加框架环境Struts2 1.解压struts- 2.1.8.1 ,如下图所示: 可在apps文件里,随机选择一个.war文件解压,到WEB-INF→lib下的基础jar文件:

复制黏贴添加到项目工程的lib下。也可将lib下的全部jar(71个)都复制到项目中来,不过很多用不到。我们崇尚即用即加的原则…… 2. 配置struts.xml和web.xml文件,如下: web.xml: ItcastOA struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndE xecuteFilter struts2 /* index.html index.htm index.jsp default.html default.htm default.jsp struts.xml:

SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)

SSI框架搭建 SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6 编号:SSI-SMVC3-S3-I3 版本:V1.0 级别:公开 编写时间:2016-02-17

目录 1导言 (1) 1.1目的 (1) 1.2范围 (1) 1.3说明 (1) 2搭建SpringMVC (2) 2.1搭建所需jar包 (2) 2.2其他依赖包 (3) 2.3搭建步骤 (4) 2.3.1创建项目 (4) 2.3.2导入jar包 (6) 2.3.3配置web.xml (7) 2.3.4配置spring-servlet.xml (9) 2.3.5配置applicationContext.xml (10) 2.3.6配置log4j.properties (10) 3整合mybatis (10) 3.1整合所需jar包 (10) 3.2其他依赖包 (11) 3.3整合步骤 (11) 3.3.1导入jar包 (11) 3.3.2配置config.properties (11) 3.3.3配置spring-dataSource.xml (12) 3.3.4 配置applicationContext.xml (15) 3.3.5配置mybatis-config.xml (16) 3.3.6创建实体model (17) 3.3.7创建实例化dao (19) 3.3.8 创建业务服务service (21) 3.3.9创建控制层controller (23)

3.3.10页面代码 (28) 3.3.11启动项目 (37)

1导言 1.1 目的 本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。 1.2 范围 本次框架搭建的版本是SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6,数据库采用的是mysql,在eclipse开发工具下搭建直接搭建的web项目,页面采用的是h5,ajax实现数据访问,如果页面为jsp等,则修改controller的返回类型即可。 1.3 说明 本文档是个人总结的经验,仅供参考学习,同时欢迎朋友们一起沟通学习,文档中会对使用的jar做详细解说,对配置的过程使用图文说明,因为SSI博大精深,很多知识在搭建过程中没有使用到,只是一个基础框架的搭建,能测试通过就可以,所以对于高要求的开发,需要自己添加jar、增加方法和配置,同时文档中出现的纰漏希望朋友们等指正。 开发环境eclipse-jee-indigo-SR1-win32-dic,Tomcat7.0,JDK1.7,mysql。

MyBaits Spring MVC JSP零基础搭建Web开发框架(注解模式)

MyBaits Spring MVC JSP零基础搭建Web开发框架(注解模式) 搭建开发环境: Netbeans8.0.2 + MySql5.6 + JDK1.7 + tomcat8.0.15 本次采用的Spring MVC Jar包如下: spring-aop-4.1.3.RELEASE.jar spring-beans-4.1.3.RELEASE.jar spring-context-4.1.3.RELEASE.jar spring-context-support-4.1.3.RELEASE.jar spring-core-4.1.3.RELEASE.jar spring-expression-4.1.3.RELEASE.jar spring-jdbc-4.1.3.RELEASE.jar spring-oxm-4.1.3.RELEASE.jar spring-tx-4.1.3.RELEASE.jar spring-web-4.1.3.RELEASE.jar spring-webmvc-4.1.3.RELEASE.jar 当然还有其他的依赖jar,如有需要请留下邮箱~! 1.首先创建Web项目 web.mvc 2.引入所有的jar文件 3.配置web.xml 做web开发的都知道,web.xml是项目的入口,我们既然使用spring那么当然要添加Spring 的支持啦! spring默认加载的是applicationContext.xml,由于我们需要集成MyBatis 所以我把Spring的配置文件强制指定名称,并与MyBatis一起配置,减少配置文件数量先指定spring配置文件名名称与路径 [html]view plaincopyprint?

实验指导书-Spring环境搭建

Spring环境搭建 实验目的:掌握如何搭建Spring环境 主要内容: (1)创建工程; (2)导入Spring类库; (3)创建Spring的配置文件applicationContext.xml; (4)编写被管理的JavaBean; (5)配置被管理的JavaBean; (6)访问被管理的JavaBean。 第(1)-(3)是每个工程都需要的步骤,第(4)-(6)是完成具体功能时候创建的。 具体操作过程如下。 1 创建工程 可以是Java工程、Web工程、企业级工程,这里采用Java工程,即Application。工程名字是HelloSpring。 2 导入类库 在工程上创建文件夹lib,复制类库到lib下面。不同版本会有不同,可以直接从示例代码中复制lib下面的类库。 修改build-path,加入这个类库:工程上点击右键,选择“build-path”,选择“configure build path”,选择lib,选择“add libraries”,选择导入的那些类库即可。 3 编写配置文件applicationContext.xml 文件名是applicationContext.xml,放在src下面即可。空的配置文件内容如下,后面在实现具体的时候再添加相关配置内容。 4 编写被管理的组件 被管理的组件为普通的Java类,其中的方法也是普通方法,下面的HelloSpring中的print 方法就是要提供给客户访问的方法。

spring+spring mvc+mybits框架整合

主要介绍三大框架的整合,至于环境的搭建以及项目的创建可以参考其他资料。这次整合主要用到两个配置文件:spring-mybatis.xm,包含spring和mybatis的配置文件,还有个是spring-mvc.xml的配置文件,此外有两个资源文件:jdbc.propertis和log4j.properties。完整的目录结构如下图: 本框架中用到的所有jar包都在源码中。 本测试项目中用到的是sqlserver数据库,MyEclipse 8.6和apache-tomcat-7.0.41 下来逐一介绍配置文件: 1、spring-mybatis.xml 这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库,注释也很详细

Spring框架配置文件的编写

实验2 IoC——Bean的创建、Bean的生命周期、字面值和 对象类型属性的注入 一、实验目的 1. 掌握Bean的实例化方法 2. 掌握基于配置文件的属性注入方法 3. 掌握基于注解的属性注入方法 二、实验器材 1. 计算机 三、实验内容 1. 建立Boss类和Car类 2. 使用XML配置文件方式创建Bean并注入属性 3. 使用注解方式创建Bean并注入属性 四、实验步骤 第一步:建立Boss.java和Car.java 第二步:使用XML配置文件的方式创建Bean并注入属性

factory-bean="instanceFactory" factory-method="createCar"> 第三步:使用注解的方式创建Bean并且注入属性 Boss.java Car.java 五、实验报告要求 1. 写出详细实现步骤

Spring框架百科

spring框架 目录 定义文档来自于网络搜索 Spring框架简介文档来自于网络搜索 Spring框架的7个模块文档来自于网络搜索 编辑本段定义文档来自于网络搜索 要谈Spring的历史,就要先谈J2EE。J2EE应用程序的广泛实现是在1999年和2000年开始的,它的出现带来了诸如事务管理之类的核心中间层概念的标准化,但是在实践中并没有获得绝对的成功,因为开发效率,开发难度和实际的性能都令人失望。文档来自于网络搜索 曾经使用过EJB开发J2EE应用的人,一定知道,在EJB开始的学习和应用非常的艰苦,很多东西都不能一下子就很容易的理解。EJB要严格地继承各种不同类型的接口,类似的或者重复的代码大量存在。而配置也是复杂和单调,同样使用JNDI进行对象查找的代码也是单调而枯燥。虽然有一些开发工作随着xdoclet的出现,而有所缓解,但是学习EJB的高昂代价,和极低的开发效率,极高的资源消耗,都造成了EJB的使用困难。而Spring 出现的初衷就是为了解决类似的这些问题。文档来自于网络搜索 Spring的一个最大的目的就是使J2EE开发更加容易。同时,Spring 之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(Plain Old Java Object)对象提供企业级的服务。文档来自于网络搜索 Spring的形成,最初来自Rod Jahnson所著的一本很有影响力的书籍《Expert One-on-One J2EE Design and Development》,就是在这本书中第一次出现了Spring的一些核心思想,该书出版于2002年。另外一本书《Expert One-on-One J2EE Development without EJB》,更进一步阐述了在不使用EJB开发J2EE企业级应用的一些设计思想和具体的做法。有时间了可以详细的研读一下。文档来自于网络搜索 Spring的初衷: 1、J2EE开始应该更加简单。 2、使用接口而不是使用类,是更好的编程习惯。Spring将使用接口的复杂度几乎降低到了零。 3、为JavaBean提供了一个更好的应用配置框架。

spring框架学习笔记(全)

spring 1.这个框架并不像hibernate或struts那样为了完成特定的 功能(操作数据库、处理Http请求),它只是用来优化我们的工程的结果、提升设计、降低耦合度。 2.核心: 应用上下文ApplicationContext它就是用来管理工程 中无数类型的核心,一般通过xml文件或者注解来管理。它在启动时载入xml文件或注解中的类、类之间关系的信息,在使用时通过一些方式将管理的类型或对象取出使用。 3.(下载spring.zip,这里面包含了相应的jar包,以及文档) 第一个spring的应用: 1、导入jar包到工程中 2、在src下创建一个叫applicationContext.xml的配置文件 比如通过上述方式,我们就通过配置文件将,两个类Hello和Bye分别注册管理,其代号分别为hello和bye。

通过这两个代号,我们之后就能取出这个两个类的实例,并进行使用。(相应的类要Hello,Bye事先自己定义好) 3、使用ClassPathXmlApplicationContext来加载上一 步中的xml文件,以及获取其中的某个bean ApplicationContextctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 加载xml文件中的配置信息,两个类就被spring管理起来了Hello h = (Hello)ctx.getBean("hello"); 注意:取出bean时可以用多态 4.开闭原则: 对扩展开放,对修改关闭 需求变更时,尽量扩展一个类,不要去修改原来的类; 这样可以避免在原来正确的类上产生新的bug。 5.spring不但可以动态创建类的实例,也可以通过配置文件动态初始化实例的属性值 1、私有属性要有对应的setter方法 2、在bean中定义property属性,对应类中私有属性, *可以通过配置进行属性的自动设置。 在猫的bean中注册name属性,值为TOM

Spring框架有哪几部分组成

* Spring框架有哪几部分组成? Spring框架有七个模块组成组成,这7个模块(或组件)均可以单独存在,也可以与其它一个或多个模块联合使用,主要功能表现如下: ? Spring 核心容器(Core):提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,她是工厂模式的实现。BeanFactory 使用控制反转(Ioc)模式将应用程序的配置和依赖性规范与实际的应用代码程序分开。 ? Spring AOP:通过配置管理特性,Spring AOP模块直接面向方面的编程功能集成到了Spring框架中,所以可以很容易的使Spring 框架管理的任何对象支持 AOP。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使用Spring AOP,不用依赖于EJB组件,就可以将声明性事务管理集成到应用程序中。 ? Spring ORM:Spring框架集成了若干ORM框架,从而提供了ORM的对象关系工具,其中包括 JDO、Hibernate、iBatis和TopLink。所有这些都遵从Spring的通用事务和DAO异常层结构。 ? Spring DAO:JDBC DAO抽象层提供了有意义的异常层次的结构,可用该结构来管理异常处理和不同数据供应商抛出的异常错误信息。异常层次结构简化了错误处理,并且大大的降低了需要编写的异常代码数量(例如,打开和关系连接)。Spring DAO的面向JDBC的异常遵从通用的DAO异常层结构。 ? Spring WEB:Web上下文模块建立在上下文模块(Context)的基础之上,为基于Web服务的应用程序提供了上下文的服务。所以Spring 框架支持 Jakarta Struts的集成。Web模块还简化了处理多部分请求及将请求参数绑定到域对象的工作。 ? Spring上下文(Context):Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化校验和调度功能。 ? Spring MVC:Spring的MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC 容纳的大量视图技术,包括JSP、Velocity、Tiles、iText和Pol * 使用spring有什么好处? ◆Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题,。 ◆Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。 ◆Spring能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。 ◆Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。 ◆Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。 ◆使用Spring构建的应用程序易于单元测试。 ◆Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。 ◆Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。 ■Spring为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate)。 Spring确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。 总结起来,Spring有如下优点: ◆低侵入式设计,代码污染极低 ◆ 独立于各种应用服务器,可以真正实现Write Once,Run Anywhere的承诺

相关主题