错题

一,Spring中Bean的作用域

当通过spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域:

  • singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例

  • prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例

  • request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效

  • session:对于每次HTTP Session,使用session定义的Bean豆浆产生一个新实例。同样只有在Web应用中使用Spring时,该作用域才有效

  • globalsession:每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。典型情况下,仅在使用portlet context的时候有效。同样只有在Web应用中使用Spring时,该作用域才有效

  其中比较常用的是singleton和prototype两种作用域。对于singleton作用域的Bean,每次请求该Bean都将获得相同的实例。容器负责跟踪Bean实例的状态,负责维护Bean实例的生命周期行为;如果一个Bean被设置成prototype作用域,程序每次请求该id的Bean,Spring都会新建一个Bean实例,然后返回给程序。在这种情况下,Spring容器仅仅使用new 关键字创建Bean实例,一旦创建成功,容器不在跟踪实例,也不会维护Bean实例的状态。

  如果不指定Bean的作用域,Spring默认使用singleton作用域。Java在创建Java实例时,需要进行内存申请;销毁实例时,需要完成垃圾回收,这些工作都会导致系统开销的增加。因此,prototype作用域Bean的创建、销毁代价比较大。而singleton作用域的Bean实例一旦创建成功,可以重复使用。因此,除非必要,否则尽量避免将Bean被设置成prototype作用域。

 

在SpringMVC中,SpringMVC返回json数据三种方式

  第三种方式:

    是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew

    使用JSON工具将对象序列化成json,常用工具Jackson,fastjson,gson

    利用spring mvc3的注解@ResponseBody 和 利用spring mvc3的注解@ResponseMapping

 

二,mvc处理的过程

原理图

 

  模型
    模型封装了应用问题的核心数据、逻辑关系和业务规则,提供了业务逻辑的处理过程。模型一方面被控制器调用,完成问题处理的操作过程,另一方面为视图获取显示数据提供了访问数据的操作。

  视图
    视图是MVC模式下用户看到的并与之交互的界面。视图从模型处获得数据,其更新由控制器控制。视图不包含任何业务逻辑的处理,它只是作为一种输出数据的方式。

  控制器
    在MVC模式中,控制器主要起导航的作用,它根据用户的输入调用相应的模型和视图去完成用户的请求。

    还可以3个职责:参数校验,异常捕获,业务封装(不是包括具体方业法的实现哈)--2012-2-22

    总之,控制器一定要瘦。

  MVC的处理过程

    MVC的处理过程是:对于每一个用户输入的请求,首先被控制器接收,并决定由哪个模型来进行处理,然后模型通过业务处理逻辑处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过显示页面呈现给用户。
 

三,InternalResouceViewResolve的父类是 “UrlBeanViewResolve

 

四,自动装配默认情况下“on 不使用自动装配

 

五,在Spring中,配置Hibernate事务管理器(Hibernate  TransactionManager)时,需要注入的属性名称是“dataSource”

 

SpringMVC表单标签的设置 

taglib指令的prefix属性是可以任意定义的,但SpringMVC表单标签的prefix属性值通常是form

 

七,Spring MVC局部异常处理,自定义两个异常:UserException,java和BaseExcption,java,下面异常处理方法handlerException()要处理这两个异常,请补全关键代码()

  @ExceptionHandler(-----------------)

    public String handlerException (UserException e1, request. setAttribute(" e1~, e1) {

    request. setAttribute("e2" ,e2) ;

    return" error ;

    }

  括号里应该填(  value= {UserException. class, BaseException. class}    {UserException. class, BaseException. class }  

 

八,在Spring中,配置Hibernate事务管理器(Hibernate Tr ansactionlManager)时,需要注入的属性名称只( dataSource

使用InternalResourceViewResolver作为视图解析器,需要进行配置:

<bean class=" org. spr ingfr amework. web. servlet. view. InternalResour ceViewResolver >

<property name=' prefix" value=' /WEB-INF/jsp/*/>

<property name= ”suffix" value=".jsp ”/>

</bean>

若一个控制类的处理方法返回-一个字符串: return "user /userlist" ;那么通过已配置好的这个视图解析器,解析成真正的视图对象应该是(   /WEB- INF/jsp/user /userlist. jsp   )

 

十,在Spr ing中可以使用scope属性来管理be an的作用域,以下选项关于作用域的配置说法错误的是()。

  session作用域:在一个HTTP Session中,一个bean定义对应一个实例global session作用域:在一个全局的HTTP Session中,一个bean定义对应一个实例

 

posted @ 2019-11-15 18:22  小猪会拱菜  阅读(233)  评论(0编辑  收藏  举报