文档库 最新最全的文档下载
当前位置:文档库 › Spring考试试题

Spring考试试题

Spring考试试题
Spring考试试题

Spring考试试卷(题库)

1.下列关于AOP的说法错误的是()。

A.AOP将散落在系统中的“方面”代码集中实现

B.AOP有助于提高系统的可维护性

C.AOP已经表现出了将要替代面向对象的趋势

D.AOP是一种设计模式,Spring为其提供了一种实现

2.在SSH整合时,事务隔离级别是由()实现的。

A.Java应用程序 B.Hibernate C.数据库系统 D.JDBC驱动程序

3.下列()不是Spring的依赖注入方式。【选两项】

A.setter注入 B.getter注入 C.接口注入 D.构造注入

4.在Spring框架中,面向方面编程(AOP)的目标在于()。

A.编写程序时不用关心其依赖组件的实现

B.将程序中涉及的公用问题集中解决

C.封装JDBC访训数据库的代码,简化数据访训层的得复性代码

D.实现画面的“无刷新”

5.关于Spring 与 Hibernate集成,下列说法错误的是()。

A.Spring提供了HibernateDaoSupport类来简化Hibernate的使用

B.在Spring配置文件中,可以通过Spring提供的LocalSessionFactoryBean来获得SessionFactory的实例

C.通过集成Spring和Hibernate,用Spring管理程序的依赖关系,将SessionFactory 注入到DataSource中

D.通过Spring,可以在Biz层代码中无需直接实例化DAO类,而是通过注入得到

6.在Spring中,下列关于依赖注入的说法,正确的是()。

A.依赖注入的目标是在代码之外管理程序组建间的依赖关系(组件?组建?)

B.依赖注入即“面向接口”的编程

C.依赖注入是面向对象技术的替代品

D.依赖注入的使用会增大程序的规模

7.下列关于S pring的说法错误的是()。

A.S pring是一个轻量级JAVA EE的框架集合 B.Spring是“依赖注入”模式的实现 C.使用S pring可以实现声明事务 D.S pring提供了AOP方式的日志系统8.在Spring 中,配置Hibernate 事务管理器(Hibernate TransactionManager)时,需

要注入的属性名称是()。

A.dataSource B.sessionFactory

C.baseHibernateDao D.transactionProxyFactoryBean

9.下列()不是Spring AOP中的通知类型。

A.前置通知 B.后置通知 C.代理通知 D.异常通知

10.关于Spring与Hibernate集成,下列说法错误的是()。

A.Spring提供了HibernateDaoSupport类来简化Hibernate的使用

B.在Sp r ing配置文件中,可以通过Spring提供的LocalSessionFactoryBean来获得SessionFactory的实例

C.通过集成Spring和Hibernate,用Spring管理程序的依赖关系,将SessionFactory 注入到DataSource中

D.通过Spring,无须在Biz层代码中直接实例化DAO类,而是可以通过注入得到

11.在Spring中,关于依赖注入,下列说法错误的是()。

A.依赖注入是一种设计开发模式 B.依赖注入使组件之间相互依赖、相互制约

C.依赖注入提倡使用接口编程 D.依赖注入可以独立开发各组件,然后根据组件间的依赖关系进行组装

12.关于Spring,下列说法不正确的是()。

A.运用Spring,可以通过一个setter方法暴露一个类的任何依赖关系

B.Spring解决依赖性问题的方法即反向控制或依赖注入

C.Spring从配置方面来解决依赖性问题,无须编写一个数据库连接

D.Spring从配置方面来解决依赖性问题,同时也需要编写一个数据库连接

13.下列对Spring的7个模块的说法,正确的有()。【选两项】

A.各模块(或组件)可以单独存在

B.各模块(或组件)不可以单独存在,必须要一起使用

C.核心模块的BeanFactory使Spring成为框架

D.上下文模块使Spring成为容器

14.Spring以Bean的方式管理所有的组件,此处的Bean指的是()。

A.必须符合JavaBean B.任何Java对象以及Java组件都视为Bean

C.必须要有getter方法和setter方法 D. EJB组件

15.在Spring中,Bean属性中的autowire包括()。【选四项】

A.byName B.byType C.constructor D.bySet E.no

16.在Spring中,Bean属性中的dependency-check包括()。【选三项】

A.no B.objects C.simple D.all

17.在Spring中,下列关于Bean属性中的singleton的说法,正确的有()。【选两项】 A.用于定义Bean是否为Singleton

B.默认为false

C.默认为true

D.在BeanFactory作用范围内,仅维护此Bean的一个实例

18.Spring包括两种不同的容器,分别是()。【选两项】

A.BeanFactory B.FileSystemXmlApplicationContext

C.ClassPathXmlApplicationContext D.ApplicationContext

19.下列能够判断Spring容器是否包含ID为proBean的Bean的代码为()。

A.boolean flag = beanFactory.containsBean("proBean");

B.PropertiesBean propertiesBean

= (PropertiesBean)beanFactory.getBean("proBean");

C.Class classType = beanFactory.getType("proBean");

D.PropertiesBean propertiesBean

= (PropertiesBean)beanFactory.getBean("proBean", PropertiesBean.class); 20.在Spring中,ApplicationContext继承了BeanFactory接口,提供BeanFactory的所

有功能,同时具有部分新功能,包括()。【选三项】

A.提供国际化的支持 B.资源访问C.事务传递 D.载入多个配置文件

21.Spring常见的注入方式有()。【选两项】

A.setter注入 B.getter注入 C.接口注入 D.构造注入

22.在Spring中,设值注入的优点包括()。【选三项】

A.对于习惯了传统JavaBean开发的程序员而言,通过setter方法设定依赖关系更加直观自然

B.当依赖关系(或继承关系)较复杂时,构造注入方式的构造函数相当庞大。此时若使

用设值注入的方式,则简单快捷

C.某些第三方类库要求组件必须提供默认的构造函数,此时构造注入方式的依赖注入机制会突显其局限性,难以完成期望功能

D.在构造期即能创建完整、合法的对象

23.在Spring中,构造注入的优点包括()。【选三项】

A.将创建完整、合法对象的工作任务转交给构造函数外的其他方法

B.避免了编写繁琐的setter方法,所有的依赖关系都在构造函数中设定

C.由于不存在setter方法,而是在构造时由容器一次性设定依赖关系,因而组件在创建之后即处于相对不变的稳定状态,无须担心上层代码在调用过程中执行setter方法时破坏组件之间的依赖关系

D.通过构造子注入,可以在构造函数中决定依赖关系的注入顺序?????????

24.在Spring中,关于IOC的理解,下列说法正确的有()。【选两项】

A. 控制反转

B. 对象被动地接受依赖类

C. 对象主动地寻找依赖类

D. 一定要用接口

25.下列关于在Spring中配置Bean的id属性的说法,正确的有()。【选两项】

A. id属性值可以重复

B. id属性值不可以重复

C. id属性是必须的,没有id属性会报错

D. id属性不是必须的

26.在Spring中,关于依赖注入,下列选项中说法错误的是()。

A. 依赖注入能够独立开发各组件,然后根据组件间的关系进行组装

B. 依赖注入使组件之间相互依赖、相互制约

C. 依赖注入提倡使用接口编程

D. 依赖注入指对象在使用时动态注入

27.在Spring中,下列关于setter注入和构造注入的说法,正确的有()。【选两项】 A.执行效果完全相同 B.注入依赖关系注入时机不同

C.setter注入方式依赖对象先注入 D.构造注入方式依赖对象先注入???????

28.在Spring中,下列关于AOP的说法正确的是()。

A.AOP为OOP的补充和完善 B.AOP为OOA的补充和完善

C.AOP将逐渐代替OOP D.AOP将逐渐代替OOA

29.在Spring中,AOP将软件系统分为两个部分,分别是( )。【选两项】

A.切面 B.业务处理 C.核心关注点 D.横切关注点

30.在Spring中,实现AOP代理时,下列说法正确的有()。【选三项】

A.Spring默认使用用于接口的JDK动态代理

B.Spring只能使用JDK动态代理

C.Spring也可以使用CGLIB代理

D.Spring主要使用JDK动态代理

31.在Spring中,使用Java实现代理方式需实现InvocationHandler接口,且必须实现

invoke(Object proxy, Method method, Object[] args)方法,则下列说法正确的有()。【选三项】

A.第一个参数是目标类

B.第二个参数Method由被代理接口的方法调用

C.第三个参数是方法调用的参数

D.当程序调用代理的目标方法时,会自动变为调用invoke方法

32.在Spring中,Proxy.newProxyInstance(mobile.getClass().getClassLoader(),

mobile.getClass().getInterfaces(), this) 方法根据接口数组动态创建代理类实例,下列说法不正确的是()。

A.第一个参数用于创建动态代理的ClassLoader对象 B.第二个参数为代理对象

C.第三个参数为代理包含的处理实例 D.第二个参数为接口数组

33.Spring的环绕通知必须实现的接口是()。

A.InvocationHandler B.MethodInterceptor

C.MethodBeforeAdvice D.AfterReturningAdvice

34.Spring的后置通知必须实现的接口是()。

A.InvocationHandler B.MethodInterceptor

C.MethodBeforeAdvice D.AfterReturningAdvice

35.在Spring中,ProxyFactoryBean继承了父类ProxyCreatorSupport的所有配置属性,

同时添加了部分独有属性interceptorNames,下列说法正确的有()。【选两项】 A.可以通过该属性指定多个将织入目标对象的Advice??????????

B.采用类似ProxyFactory的addAdvice方法来逐一添加

C.采用类似ProxyFactory的addAdvisor方法来逐一添加

D.此属性属于Collection类型,可以通过配置元素添加需要的拦截器名称

36.在Spring中,下列关于AOP的理解,正确的有()。【选两项】(A/B选项不完整)

A. 面向纵向的

B. 面向横向的

C. AOP关注的是面

D. AOP关注的是点

37.在Spring框架中,面向方面编程(AOP)的目标在于()。

A. 编写程序时无须关注其依赖组件的实现

B. 封装JDBC访问数据库的代码,简化数据访问层的重复性代码

C. 将程序中涉及的公共问题集中解决

D. 可以通过Web服务调用

38.在Spring中,下面的代码定义了一个前置通知类,则下列选项中,说法错误的是()。public class LogAdvice implements MethodBeforeAdvice{

public void before(Method m,Object[]arges,Object target) throws Throwable{ System.out.println(m.getName()+"(" + Arrays.toString(args) +")";

}

);(代码中少一个大括号)

A. 方法before是MethodBeforeAdvice接口中定义的方法

B. 参数m是被通知的目标方法

C. 参数args是调用方法的参数

D. 参数target是代理类

39.通过Spring构建Hibernate,存在的优点有()。【选三项】

A.测试简单 B.异常封装

C.通用的代码管理 D.综合的事务管理

40.在SSH整合时,findByExample(Account instance)方法的作用是()。

A.根据一个属性的值查询

B.将传入的对象状态设置为Transient状态

C.根据对象查询,查询条件为对象的属性值

D.添加与修改,类似于saveOrUpdate

41.在Spring和Hibernate的整合过程中,各对象注入的顺序是()。(空格)

A.DataSource->SessionFactory-> Biz -> DAO

B.SessionFactory -> DataSource ->DAO->Biz

C.DataSource->SessionFactory->DAO->Biz

D.SessionFactory -> DataSource -> Biz -> DAO

42.在Spring包装Hibernate后,能够用于保存数据的方法有()。【选三项】

A. save

B. load

C. saveOrUpdate

D. merge

43.关于Spring与Hibernate集成,下列说法错误的是()。

A. 通过集成Spring与Hibernate,以Spring管理程序的依赖关系,将SessionFactory

注入DataSource

B. 通过Spring,在Biz层代码中无须直接实例化DAO类,而是通过注入获得

C. 通过Spring,在DAO类中无须实例化SessionFactory,而是通过注入获得

D. Spring提供HibernateDaoSupport类来简化Hibernate的使用

44.Spring整合Hibernate后,下列关于findByCriteria方法的说法正确的是()。

A. 参数是HQL

B. 参数是Retrictions对象

C. 参数是DetachedCriteria对象

D. 该方法不支持分页

45.关于Spring对Hibernate提供的支持,下列说法错误的是()。

A. 提供了综合的事务管理

B. 提供了统一的异常继承体系

C. 便于测试

D. 没有给查询提供良好的支持

46.在Spring中,下列说法正确的是()。

A. Spring DAO需要注入DataSource

B. Spring DAO需要注入SessionFactory

C. DataSource需要注入SessionFactory

D. Spring DAO无须注入SessionFactory

47.在Web启动时创建ApplicationContext,下列选项错误的是()。

A.

org.springframework.web.context.ContextLoaderListener

B.

context

org.springframework.web.context.ContextLoaderServlet

C.

contextConfigLocation

/WEB-INF/classes/applicationContext.xml,(逗号去掉否)

/WEB-INF/classes/applicationContext_biz.xml

org.springframework.web.context.ContextLoaderListener

D.

contextConfigLocation

classpath*:applicationContext.xml

org.springframework.web.context.ContextLoaderListener

48.Spring IOC容器管理Action的方式有()。【选两项】

A.使用org.springframework.web.struts.DelegatingRequestProcessor

B.使用org.springframework.web.struts.DelegatingActionProxy

C.使用org.springframework.web.context.ContextLoaderListener

D.使用org.springframework.web.context.ContextLoaderServlet

49.使用org.springframework.web.struts.DelegatingActionProxy时,需要什么配置?

()

A.需要在struts-config.xml中配置

processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

B.需要在web.xml中配置

processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

C.需要在hibernate.cfg.xml中配置

processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

D.需要在applicationContext.xml中配置

processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

50.SSH整合的优点有()。【选两项】

A.实现了视图、控制器与模型的彻底分离 B.实现了业务逻辑层与持久层的分离

C.具有可扩展性 D.具有可维护性

51.在Spring中,BeanFactory由org.springframework.beans.factory.BeanFactory接

口定义,是工厂模式的实现,其作用包括()。【选三项】

A.负责创建和管理Bean

B.负责在实例化Bean之前创建Bean之间的联系

C.创建及分发Bean

D.参与到Bean生命周期中,调用对象的初始化函数及析构函数

52.Sp r ing的优点包括()。【选三项】

A.低入侵式设计,代码污染低

B.独立于各种服务器,真正实现Write Once、Run Anywhere

C.Spring的AOP机制降低了业务对象替换的复杂性

D.Spring的高度开放性,不强制要求应用完全依赖于Spring

53.Spring实现了()两种基本设计模式。【选两项】

A.门面模式 B.工厂模式 C.单态模式 D.多态模式

54.单态模式的优势不包括()。

A.尽量减少Java对象的创建和销毁时的开销

B.避免Java类的频繁实例化

C.让相同类的全部实例共享同一内存区

D.无须要求一个类只有一个实例

55.Spring的核心机制是()。

A.依赖注入 B.AOP C.声明式事务 D.资源访问

56.Spring依赖注入对调用者和被调用者是否有要求?()

A.对调用者有要求 B.对被调用者有要求

C.对调用者和被调用者都没有要求 D.以上说法都不正确

57.Spring以Bean的方式管理所有的组件,此处的Bean不包括()。

A.任何Java对象 B.任何Java组件

C.任何JavaBean D.必须符合规范的JavaBean

58.在Spring中,用于产生Bean工厂的是()。

A.Spring的BeanFactory B.Spring的AOP

C.Spring的资源 D.Spring的核心库

59.对应web应用,无须在代码中手动实例化ApplicationContext,可通过ContextLoader

声明式地创建。ContextLoader有两个实现类,分别是()。【选两项】

A.ContextLoaderListener B.ContextWebListener

C.ContextLoaderServlet D.ContextWebServlet

60.在Spring中,AOP框架具有的两个主要特征是()。【选两项】

A.各部分之间良好的隔离性 B.可维护性

C.源代码无关性 D.可扩展性

ssh框架面重要试题

Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。 他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。 它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与存中,当程序真正对数据的操作时,对象才存在与存中,就实现了延迟加载,他节省了服务器的存开销, 从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、 one-to-many、many-to-many、 4.说下Hibernate的缓存机制

Spring简介

spring 年编著的《Expert one to one J2EE design and development

Spring Logo 书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。同年他又推出了一部堪称经典的力作《Expert one-to-one J2EE Development without EJB》,该书在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式。在该书中,作者根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson成为一个改变Java世界的大师级人物。 传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。 Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。 编辑本段简介 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 ◆目的:解决企业应用开发的复杂性 ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 ◆范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 ◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB 多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 ◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC 与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 ◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

多图详解Spring框架的设计理念与设计模式

Spring作为现在最优秀的框架之一,已被广泛的使用,51CTO也曾经针对Spring框架中的JDBC应用做过报道。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的设计理念。 Rod Johson在2002年编著的《Expert one to one J2EE design and development》一书中,对Java EE正统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。同年他又推出了一部堪称经典的力作《Expert one-to-one J2EE Development without EJB》,该书在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式。在该书中,作者根据自己多年丰富的实践经验,对EJB 的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson 成为一个改变Java世界的大师级人物。 传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。 Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而与它们无缝地整合。 Spring简介 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 ◆目的:解决企业应用开发的复杂性 ◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 ◆范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 ◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且 Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 ◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 ◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。 ◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将

Spring考试试卷(有答案)

Spring考试试卷(题库) 1.下列关于AOP的说法错误的是()。 A.AOP将散落在系统中的“方面”代码集中实现 B.AOP有助于提高系统的可维护性 C.AOP已经表现出了将要替代面向对象的趋势 D.AOP是一种设计模式,Spring为其提供了一种实现 2.在SSH整合时,事务隔离级别是由()实现的。 A.Java应用程序 B.Hibernate C.数据库系统 D.JDBC驱动程序 3.下列()不是Spring的依赖注入方式。【选两项】 A.setter注入B.getter注入 C.接口注入 D.构造注入 4.在Spring框架中,面向方面编程(AOP)的目标在于()。 A.编写程序时不用关心其依赖组件的实现 B.将程序中涉及的公用问题集中解决 C.封装JDBC访训数据库的代码,简化数据访训层的得复性代码 D.实现画面的“无刷新” 5.关于Spring 与 Hibernate集成,下列说法错误的是()。 A.Spring提供了HibernateDaoSupport类来简化Hibernate的使用 B.在Spring配置文件中,可以通过Spring提供的LocalSessionFactoryBean来获得SessionFactory的实例 C.通过集成Spring和Hibernate,用Spring管理程序的依赖关系,将SessionFactory 注入到DataSource中 D.通过Spring,可以在Biz层代码中无需直接实例化DAO类,而是通过注入得到 6.在Spring中,下列关于依赖注入的说法,正确的是()。 A.依赖注入的目标是在代码之外管理程序组建间的依赖关系(组件?组建?) B.依赖注入即“面向接口”的编程 C.依赖注入是面向对象技术的替代品 D.依赖注入的使用会增大程序的规模 7.下列关于Spring的说法错误的是()。

spring相关jar包简介

spring相关jar包简介 spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar 里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。 除了spring.jar文件,Spring还包括有其它13个独立的jar包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar包,而不必引入整个spring.jar的所有类文件。 (1) spring-core.jar 这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 (2) spring-beans.jar 这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,引入spring-core.jar及spring- beans.jar文件就可以了。 (3) spring-aop.jar 这个jar文件包含在应用中使用Spring的AOP特性时所需的类。使用基于AOP的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。 (4) spring-context.jar 这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。 (5) spring-dao.jar 这个jar文件包含Spring DAO、Spring Transaction进行数据访问的所有类。为了使用声明型事务支持,还需在自己的应用里包含spring-aop.jar。 (6) spring-hibernate.jar 这个jar文件包含Spring对Hibernate 2及Hibernate 3进行封装的所有类。 (7) spring-jdbc.jar 这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。 (8) spring-orm.jar 这个jar文件包含Spring对DAO特性集进行了扩展,使其支持iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar 包。

spring框架

spring框架 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应

该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB 容器,它们经常是庞大与笨重的,难以使用。 框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

SSH题库

1. SSH中,依次处理的哪一层的实现? D A.Struts –业务逻辑层;Hibernate-表现层;Spring-持久层 B.Struts-表现层;Hibernate-业务逻辑层;Spring-持久层 C.Struts-持久层;Hibernate-表现层;Spring-业务逻辑层 D.Struts-表现层;Hibernate-持久层;Spring-业务逻辑层 2. 在Struts实现的MVC框架中,(A)类是包含了excute方法的控制器类,负责调用模型的方法,控制应用程序的流程。 A. Action B. EJB C. ActionServlet D. JSP 3. 在基于Struts框架的Web应用中,下面关于Action类的说法正确的是(C)。 A. Action类属于模型组件 B. Action类主要用来完成实际的业务逻辑 C. Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程 D.在Web应用启动时会自动加载所有的Action实例 4. 下面关于数据持久化概念的描述,错误的是(D)。 A.保存在内存中数据的状态是瞬时状态 B.持久状态的数据在关机后数据依然存在 C.数据可以由持久状态转换为瞬时状态 D.将数据转换为持久状态的机制称为数据持久化 5. 下面关于Hibernate的说法,错误的是(C)。 A.Hibernate是一个“对象-关系映射”的实现 B.Hibernate是一种数据持久化技术 C.Hibernate是JDBC的替代技术 D.使用Hibernate可以简化持久化层的编码 6. 在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是(B)。 A.配置客户和订单关联的cascade属性为save-update B.配置客户和订单关联的cascade属性为all C.设置多对一关联的inverse属性为true D.设置多对一关联的inverse属性为false 7. 执行下面的hql查询,关于返回值的说法,正确的是(B)。 select https://www.wendangku.net/doc/ea16657022.html,ername,https://www.wendangku.net/doc/ea16657022.html,erid from https://www.wendangku.net/doc/ea16657022.html,er u where u is not null A.语法错误,不能执行 B.返回一个类型为List的实例 C.返回一个数组 D.当返回结果只有一条时,返回一个数组 8. 下面创建Criteria对象的语句中正确的是(D)。 A.Criteria c = query.createCriteria(); B.Criteria c = query.addCriteria(); C.Criteria c = session.createCriteria(); D.Criteria c = session.createCriteria(User.class); 9. 下面关于“依赖注入”的说法,错误的是(D)。 A.将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中 B.降低了组件间的耦合,使程序更容易维护和升级 C.促进了“面向接口”编程,使构建大规模程序更轻松 D.需要定义大量接口,增加了编码复杂度 10. 关于Spring的说法错误的是(C)。

【黑马程序员】Spring Boot介绍和使用

【黑马程序员】Spring Boot介绍和使用 简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。Spring Boot是一种简化原有Spring应用繁杂配置的微框架。使开发者从繁杂的各种配置文件中解脱出来,通过Spring Boot能够很简单、很快速构建一个优秀的、产品级的Spring基础应用。运行Spring Boot和运行普通的Java 类一样简单,仅仅run一下Spring Boot的入口main()方法即可开启应用;你也可以把Spring Boot应用打成jar,在命令行执行java -jar xxx.jar命令来运行;或者打成war包部署到服务器下运行服务器来开启应用。Spring Boot微框架考虑到了Spring平台和第三方库的情况,所以你需要做的则是最少的操作或配置。 Spring Boot的特点: 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 绝对没有代码生成并且对XML也没有配置要求 Spring boot的使用 1.在ide中打开工程,这里使用的ide是idea,工程的目录结构为: 2、maven配置文件

Spring技术内幕:深入解析Spring架构与设计原理

---------------------------------------------------------------最新资料推荐------------------------------------------------------ Spring技术内幕:深入解析Spring架构与设计原 理 Spring 技术内幕: 深入解析 Spring 架构与设计原理 Spring 技术内幕深入解析 Spring 架构与设计原理(一)引子缘起已经很久没有写帖子了,现在总算是有点时间写些东西,也算是对自己的一个记录吧。 刚刚完成了一个软件产品,从概念到运营都弄了一下,正在推广当中,虽然还没有能够达到盈亏平衡,但是这个过程,对自己也算是一种历练。 先不管结果如何,好呆走过这么一遭了。 我打算用这个帖子,把自己在这个过程中的一些心得,特别是对 Spring 新的理解,记录下来。 使用这个帖子的标题,持续下来。 简单来说,自己的软件产品是一个基于互联网的 SaaS 协同软件平台, 操作简单,支持流程定义,管理和多种客户端 -像短信, MSN,智能手机什么的(我这里就不多做什么广告了),也有一个企业版的版本,使用的技术框架是 Hibernate + Spring + Wicket,下面是 Linux 和 MySQL,还有云计算的平台的使用,以支持其扩展性,虽然现在还没有可扩展性的需求,但似乎不难从SaaS 上,就会想到云计算, 其实,它们真的是天生的一对! 1 / 3

关于云计算,自己对这个技术很感兴趣,觉得和开源软件的结合,是很有意思的,因为它们都有基于服务的基因,在云计算平台的使用上,也有一些初步的实践。 云计算是一个很有意思的话题,但在这里主要是想谈 Spring,所以对云计算,这里就先不多说了,但非常欢迎有兴趣的朋友和一起另外找地方讨论!回到正题,在我自己的产品中,其中除了Wicket 和云计算外,其他都是大家非常熟知的了,像Hibernate, Spring, MySQL 什么的。 在这个过程中,发现自己对一些技术点也有了新的认识,最有体会的是 Spring。 当然,在这个过程中,更大的收获是对产品开发整个过程的认识,在这点上,真是一言难尽. . . . . . . . 回到自己还算了解的 Spring, 这次我使用的是 3. 0 的代码,所以,有机会也把这些代码读了几遍,比原来的理解要加深了许多,也发现了不少和 2. 0 代码不同的地方,以及自己一些对 Spring 的新的理解,这些,就让我就用这个帖子系列,给自己总结一下,也算是对自己以前的那个代码分析的帖子做一个新的交代吧。 自己对 Spring 一点小小的见解简化 Java 企业应用的开发,是Spring 框架的目标. 就是我们熟知的当年的那个interface21,也亦非吴下阿蒙了,由它演进出来的 Spring,以及由它带来的崭新开发理念,也早已伴随着这个开源框架的广泛应用,而飞入寻常百姓家。

一个非常有趣的使用spring框架AOP例子

一个非常有趣的使用spring框架AOP例子 接触spring有一段时间了,不过都是看的多,写的少,工作忙,公司也不准备用。自己写过一些小东西用到,也只用到了BeanFactory组装对象,JdbcTemplate代替jdbc,事务管理。。。东抓一把,西抓一把,没形成系统。最近也在看spring自带的reference,一时手痒,写了个AOP的创建advice的例子,比之单纯地使用TransationProxyFactoryBean 对AOP的理解又深入了点,打算看看它的源代码,基于CGLIB的实现对类的代理不了解,倒是好奇它如何实现对接口的代理??也就是利用J2SE的动态代理技术。 例子如下:讲述一间书店开始打折促销,规则是每一名顾客只能买一本书,而且已经脱销了。。。。。你可以去掉TestAdvice里的注释看看各种运行结果,具体就不解释咯,在代码注释里。 首先,你必须对增强(advice)有所了解,增强就是在特定连接点执行的动作。advice contains the logic of your aspect。增强,分为4类: 前增强(before)在连接点之前调用 后增强(after)在连接点执行之后调用、 环绕增强(around)完整控制整个方法流程,必须调用MethodInvocation的proceed促使真实操作发生 异常增强针对某个异常抛出时调用 书店,一个buyBook业务: package com.denny_blue.springdemo.aop; public interface BuyBook { public void buyBook(String customer,String book)throws NoThisBookException; } 实现此接口的一个业务对象,如果顾客要买就抛出NoThisBookException异常。 package com.denny_blue.springdemo.aop; public class MyBuyBook implements BuyBook { public void buyBook(String customer,String book)throws NoThisBookException{ if(book.equals("")) throw new NoThisBookException("对不起,没有"+book+"存货了!"); System.out.println(customer+",你好,你已经购买了一本"+book+"!"); } }

ssh试题

测试卷 (java) 一、选择题(60分) 1) 在Struts实现的MVC框架中,(a)类是包含了 excute方法的控制器类,负责调用模型的方法,控 制应用程序的流程。 a) Action b) EJB c) ActionServlet d) JSP

2) 在基于Struts框架的Web应用中,下面关于Action 类的说法正确的是(c)。 a) Action类属于模型组件 b) Action类主要用来完成实际的业务逻辑 c) Action类负责调用模型的方法,更新模型的状 态,并帮助控制应用程序的流程 d) 在Web应用启动时会自动加载所有的Action 实例 3) 在基于Struts框架的Web应用中,下面关于 ActionForm Bean的说法正确的是(b)。 a) ActionForm Bean用来完成一些实际的业务逻 辑 b) Struts框架利用ActionForm Bean来进行视图和 控制器之间表单数据的传递 c) ActionForm负责调用模型的方法,更新模型的 状态 d) ActionForm Bean包含一些特殊的方法,reset()

用于验证表单数据validate()将其属性重新设置 为默认值 4) 分析Action Bean的execute方法: public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ActionErrors errors=new ActionErrors(); if(!udao.check(loginform)){ errors.add("login", new ActionMessage("error.login")); return mapping.findForward("failure"); } } 完成以上的功能,应在下划线上填入(c)。 a) this.saveErrors(request, errors); b) this.saveErrors(reponse, errors); c) this.addErrors(request, errors); d) this.addErrors(reponse, errors);

java框架Spring2复习题

一、选择题(每题2分,共计100分) 1.下面关于AOP的说法错误的是()。 A.AOP将散落在系统中的“方面”代码集中实现 B.AOP有助于提高系统的可维护性 C.AOP已经表现出了将要替代面向对象的趋势 D.AOP是一种设计模式,Spring提供了一种实现 2.事务隔离级别是由谁实现的?()。 A.Java应用程序 B.Hibernate C.数据库系统 D.JDBC驱动程序 标准SQL规范: 在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离级别;为了解决更新丢失,脏读,不可重读(包括虚读和幻读)等问题在标准SQL规范中,定义了4个事务隔离级别,分别为未授权读取,也称为读未提交(read uncommitted);授权读取,也称为读提交(read committed);可重复读取(repeatable read);序列化(serializable). 3.下列哪项不是Spring的依赖注入方式()。[选两项] A.setter注入 B.getter注入 C.接口注入 D.构造注入 4.在Spring框架中,面向方面编程(AOP)的目标在于( )。 A.编写程序时不用关心其依赖组件的实现 B.将程序中涉及的公用问题集中解决 C.封装JDBC访训数据库的代码,简化数据访训层的得复性代码 D.实现面面的”无刷新”

A.Spring提供了HibernateDaoSupport类来简化Hibernate的使用 B.在Spring配置文件种可以通过Spring提供的LocalSessionFactoryBean,来获得SessionFactory的实例 C.通过集成Spring和Hibernate,用Spring管理程序的依赖关系,将SessionFactory 注入到DataSource中 D.通过Spring,可以在Biz层代码中无需直接实例化DAO类,而是通过注入得到 6.依赖注入说法正确的是()。 A.依赖注入的目标是在代码之外管理程序组建间的依赖关系 B.依赖注入即是“面向接口”的编程 C.依赖注入是面向对象技术的替代品 D.依赖注入的使用会增大程序的规模 7.关于spring说法错误的是()。 A.spring是一个轻量级JAVA EE的框架集合 B.spring是“依赖注入”模式的实现 C.使用spring可以实现声明事务 D.spring提供了AOP方式的日志系统8.在Spring 中,配置Hibernate 事务管理器(Hibernate TransactionManager)时,需要 注入的属性名称是( )。 A.dataSource B.sessionFactory C.baseHibernateDao D.transactionProxyFactoryBean 9.下面()不是Spring AOP中的通知类型。 A.前置通知 B.后置通知 C.代理通知 D.异常通知

SSH综合试卷

SSH学习增强练习 课程名称: SSH学习增强练习考试时间80分钟(闭卷■) 选择题 1.开发struts2 web项目,需要导入哪些jar包(选2项) A 必须导入struts2 解压lib下所有jar包 B 只需要导入struts2解压app/struts2_blank.war中的jar包就可以 C 如果进行注解开发,导入struts2解压app/struts2_blank.war中的jar包就可以 D 如果进行注解开发,还必须导入convention的插件jar包 2.下面关于struts2 MVC说法正确的是?(选2项) A.Struts2 是一个基于MVC模式的web层框架 B.Struts2中核心控制器是ActionServlet C.Struts2中模型是Action D.Struts2中控制器是Filter 和Action E.Struts2的视图必须用JSP 3.关于Struts2 Action说法下面不正确的是 A.用户编写的Action可以是POJO类 B.用户编写的Action可以实现Action接口 C.用户编写的Action 可以继承ActionSupport D.Action中必须提供execute方法 E.Action提供的业务方法必须public修饰,String类型返回值,无参数的 4.如果客户端请求路径http://localhost:8080/struts2_exec/user_add.action 要执行UserAction类中 的add方法,下面的配置哪些是正确的(选2项) A. B. C. D. E. 5.下面关于Struts2中result type说法不正确的是? A.如果要将请求从一个Action转发给另一个Action 可以使用chain 结果集 B.如果要将请求重定向给一个JSP,可以使用dispatcher 结果集 C.如果要将请求从一个Action重定向到另一个Action 可以使用redirectAction结果集 D.如果要将请求从一个Action重定向到JSP,可以使用redirect结果集 E.进行文件下载时可以使用stream结果集 6.如果客户端提交请求路径为http://localhost:8080/struts2/hello.action?name=”itcast”, 下面在 Action中要接收name请求参数,哪个写法是正确的?(选2项) A.public class HelloAction { private String name; public void setName(String name){ https://www.wendangku.net/doc/ea16657022.html, = name; } } B.public class HelloAction { private User user ; public void setUser(User user){ https://www.wendangku.net/doc/ea16657022.html,er = user; } } public class User {

Spring技术介绍

一、基本概念 Spring 的核心是轻量级(Lightweight )的容器(Container ),它实现了IoC 容器、非侵入性(No intrusive )的框架,并提供AOP 概念的实现方式,提供对持久层(Persistence )、事务(Transaction )的支持,提供MVC Web 框架的实现,并对一些常用的企业服务API (Application Interface )提供一致的模型封装,是一个全方位的应用程序框架(Application framework ),另外,Spring 也提供了对现有框架(Struts 、JSF 、Hibernate 等)的整合方案。 Spring 旨在分离体系结构的层次,因此每一层都可以修改而不会影响到其它层。每一层都不知道其上层的关注点;就其可能而言,只对所紧挨的下一层有依赖。层与层之间的依赖通常是以接口的形式表现,以确保其耦合尽可能松散。 容器管理事务,容器,贯穿始终:1、对象生命周期的管理。 2、容器本身具备功能,加在自己的类中。需要自己调用则为显示调用。 而尽量用容器隐式调用,Spring 即为隐式 对现有表现层的支持 与ORM 紧密结合,可使用声明式事务管理 AOP 标准接口的实 现(容器管理的声 明式的种种事务) 对JDBC 采用模板回调;声明的JDBC 事务管理. 提供了Bean 工厂 对Bean 工厂的扩 展(比如对事务、国际化的支持) 自己的MVC 实现

调用、声明式编程。 Spring 轻量级容器体现在:只需设置一个Jar 文件到CLASSPATH ,不用去调用它,但又可以拥有其强大的功能。组件的极大程度的复用。 让层与层中耦合度低——Loosely-Coupled 工厂类创建DAO 对象。 声明式编程:在xml 文件中声明。 基于POJO 类,支持事务,事务是根本;而EJB 事务由Container 管理。 Spring 将 View 层与持久层,比如与Hibernate 联系起来。Spring 简化Hibernate 的使用,还可以帮助管理Hibernate 。Spring 本身没有O-R_mapping ,因为有Hibernate ,她已经做得很好了。 Spring 将编译时异常(checked )转化为运行时异常(runtime )。比如,JDBC 则为编译时异常,即必须写try…catch ;而Hibernate 程序为运行时异常。 在spring-framework-2.0.5\dist 目录下 有jar 文件、 dtd 文件、 tld 文件。 总之,Spring 是一个轻型容器(light-weight container ),其核心是Bean 工厂(Bean Factory ),用以构造我们所需要的M (Model )。在此基础之上,Spring 提供了AOP (Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean 工厂的扩展ApplicationContext 更加方便我们实现Java EE 的应用;DAO/ORM 的实现方便我们进行数据库的开发;Web MVC 和Spring Web 提供了Java Web 应用的框架或与其它流行的Web 框架进行集成。 二、IoC (Inversion of Control ) 1、定义:组件..之间的依赖关系....由容器..在运行时决定。 例如:B 对象所依赖的A 对象是由 Spring 创建好并且通过Set 方法传递注入过来的。 最基本的优点体现在:若A 为接口,让B 依赖于接口。只看接口不管实现类。 可把工厂类全部替换掉。对象均为容器创建。到时还能把容器的功能融入到其中。 IoC 要求:容器尽量不要侵入到应用程序中去,应用程序本身可以依赖于抽象的接口, 容器根据这些接口所需要的资源注入到应用程序中,也就是说应用程序不会主动向容器 JavaBean 调用/包含 Spring 控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系。

各技术框架架构图

各种系统架构图及其简介 1.Spring 架构图 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架。Spring 框架的功能可以用在任何J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定J2EE 服务的可重用业务和数据访问对象。这样的对象可以在不同J2EE 环境(Web或EJB )、独立应用程序、测试环境之间重用。 组成Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: ?核心容器:核心容器提供Spring 框架的基本功能。核心容器的主要组件是BeanFactory ,它是工厂模式的实现。BeanFactory 使用控制反转(IOC )模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 ?Spring 上下文:Spring 上下文是一个配置文件,向Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如JNDI 、EJB 、电子邮件、国际化、校验和调度功能。 ?Spring AOP :通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了Spring 框架中。所以,可以很容易地使Spring 框架管理的任何对象支持AOP 。Spring AOP 模块为基于Spring 的应用程序中的对象提供了事务管理服务。通过使用Spring AOP ,不用依赖EJB 组件,就可以将声明性事务管理集成到应用程序中。 ?Spring DAO :JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向JDBC 的异常遵从通用的DAO 异常层次结构。 ?Spring ORM :Spring 框架插入了若干个ORM 框架,从而提供了ORM 的对象关系工具,其中包括JDO 、Hibernate 和iBatis SQL Map 。所有这些都遵从Spring 的通用事务和DAO 异常层次结构。

相关文档