使用SqlSessionTemplate映射接口实现数据库操作,下列说法正确的是()
A.使用SqlSessionTemplate的selectOne()方法获取映射器实例;
B.使用SqlSessionTemplate的getInstance()方法获取映射器实例;
C.使用SqlSessionTemplate的getMapper方法获取映射器实例;
D.必须提供实现DAO接口的实现类;
正确答案:C
试题解析:使用SqlSessionTemplate的getMapper方法可以完成映射接口的实现,可以没有DAO实现的类,这种方式不容易产生错误,并且在编译期就能识别错误。而且命名空间发生变化,也不会导致很多地方需要修改,易于维护。故选c
关于Spring的声明式事务管理,下面说法正确的是()
A.声明式事务是侵入式的,需要修改程序代码;
B.使用声明式事务时,我们主要关注“在哪儿”和“采取什么样的事务策略”;
C.配置声明式事务需要tx和aop两个命名空间的支持;
D.事务管理器的实现由负责数据库操作的Hibernate框架提供;
正确答案:BC
试题解析:
声明式事务:在Spring配置文件中对事务进行配置,无须在程序中写代码;(建议使用)
在springMVC中,下面那个选项能正确使用springmvc表单标签()
![](https://img2018.cnblogs.com/i-beta/1508365/201911/1508365-20191115165948021-1339579487.png)
正确答案:ABCD
试题解析:此题主要考查SpringMVC表单标签的设置。taglib指令的prefix属性是可以任意定义的,但SpringMVC表单标签的prefix属性值通常是form。因此ABCD是正确的选项
对于java的mvc模式Model 1与Model 2模式下的比较下列说法错误的是()
A.Model 1的中心是JSP页面,JSP页面转给你结合业务逻辑,服务端处理过程和HTML等,这样就JSP页面中同时实现了业务逻辑和流程控制。从而快速开发;
B.Model 1的优点:简单,快速开发,使用小规模开发;结构比Model 2更优秀合理;
C.Model 2表示的是基于MVC模式的框架,
“Model”代表的是应用的业务逻辑,
“View”是应用的表示层,
“Controller”是提供应用的处理过程控制;
D.Model 2优点:具有组件的优点从而更易于实现对大规模系统的开发和管理。职责划分清晰;
正确答案:B
试题解析:
model 1:
Model1虽然实现了MVC,但是实现的并不彻底。MVC模式中,分为View层、Controller层和Model层,而在Model1中,View层和Controller层合二为一了,也就是JSP,JavaBean则作为Model层单独存在。这样的话,JSP既要做显示,又要处理一定的业务逻辑,对于单一职责的原则来说,这显然不符合。JSP的职责太重,就显得中间部分有些臃肿。
虽然Model1模式没有很符合单一职责原则,但是Model1实现比较简单,对程序员的要求也不高。但是JSP页面兼具View和Controller两种角色,将控制逻辑和表现逻辑混合在一起,导致代码的重用性比较低,增加了扩展性和可维护的难度,所以适合小型项目的开发。
model 2:
Model2可以说完全实现了MVC模式,在Model1的基础上,Model2扩展了Servlet,将控制逻辑放在Servlet中,让它来做Controller的工作,从而减少了JSP的负担。在Model2模式中,JSP只负责显示页面,生成动态网页;Servlet负责流程的控制,处理各种请求;JavaBeans则负责业务逻辑,以及对数据库的操作。
在Model2模式中,JSP相当于View的角色,Servlet做的Controller的工作,JavaBeans做的Model层的工作。但是相对于Model1,Model2对程序员的要求要高,各层之间分工明确,各司其职。分层的结果是开发的粒度较细,代码的复用性提高了,后期维护也容易了,所以Model2模式比较适合大型项目的开发。
使用Spring2整合mybatis时,mybatis-spring-1.2.0.jar中提供了()类实现数据库操作,该类中包含增删改查等常用方法。
A.SqlTemplate
B.SqlSessionTemplate
C.JdbcTmplate
D.HibernateTemplate
正确答案:B
试题解析:
在使用Mybatis与Spring集成的时候我们用到了SqlSessionTemplate 这个类。
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
SqlSessionTemplate 实现了SqlSession接口,也就是说我们可以使用SqlSessionTemplate 来代理以往的DefailtSqlSession完成对数据库的操作,但是DefailtSqlSession这个类不是线程安全的,所以这个类不可以被设置成单例模式的。
在springMVC配置文件中,有如下配置:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:perfix="/" p:suffix=".jsp">,以下代码有可能从controller跳转到welcome.jsp并能够在jsp中显示出username数据的是()
正确答案:AD
试题解析:此题目主要考查的是SpringMVC参数的传递。用Map传参,必须要给出key值,而Model模式若没有赋key值,默认使用对象的类型作为key,所以选项D中传参是正确的,方法的参数顺序是无关的,但是Map和Model必须以参数形式传递进来,所以B是错的,根据配置信息,返回值不需要带后缀名,所以C是错的,因此AD是正确的选项
关于SpringMVC的异常处理,下列说法错误的是()
A.SpringMVC通过HandlerExceptionResolver处理程序的异常,HandlerExceptionResolver只有一个接口方法resolveException();
B.HandlerExceptionResolver有4个实现类,默认装配的是SimpleMappingExceptionResolver,它会将异常转换成对应的响应状态码(500,404等);
C.使用SimpleMappingExceptionResolver可以对异常进行统一处理,发生异常时使用对应的视图报告异常;
D.若在SpringMVC中同时设置了全局异常处理和局部异常处理,针对同一异常的全局异常处理会被局部异常处理覆盖;
正确答案:B
试题解析:B选项说法错误,HandlerExceptionResolver有4个实现类,默认装配的是DefaultHandlerExceptionResolver,他会将异常转换为相应的响应状态码
下列关于@RequestParam绑定请求参数值的说法正确的是()
A.Controller方法入参时,必须使用@RequestParam指定的请求参数;
B.@RequestParam的参数required,默认值为false;
C.若非有必须的参数,必须使用@RequestParam注解标注并设置required=false;
D.使用@RequestParam指定对应的请求参数,并且required=true,那么请求中若不加此参数,则会报请求错误;
正确答案:D
试题解析:Controller方法入参时,@RequestParam不是必需的,不加@RequestParam也可实现入参,故A错。@RequestParam的参数required默认值为true,故B错。不使用@RequestParam注解标注参数,则对入参没有强制,不传参也不会报错,故C错。
对于REST风格的URL请求,要获取路径中参数id,横线处应填入()
@RequestMapping(value="/view/{id}",method=RequestMoethod.GET)
public String view(___,Model model){
//根据参数id,获取相应的数据对象并放入到model中
model.addAttribute(userList.get(id));
return "user/view";
}
A.String id
B.@PathVariable String id
C.@RequestParam(value="id",required=false) String id
D.@RequestParam(value="id")String id
正确答案:B
试题解析:
/*{id}表示占位符*/
@RequestMapping("/getid/{id}")
@ResponseBody
public Object getid(@PathVariable("id") Integer id){
List<Accounts> name = accountService.getName(id);
return name;
}
在springMVC中,有以下方法描述
@RequestMapping(value="/{id}/test/{name}")
public String index(@PathVariable String id,@PathVariable String name){
System.out.println("id="+id+" "+"name="+name);
return "index";
} 应用部署上下文是testmvc,则在当前应用根目录下以下能够正确访问index()方法的路径描述是()
A.<a href="5/test/jim">test</a>
B.<a href="/5/test/jim">test</a>
C.<a href="5/index/jim">test</a>
D.<a href="/5/index/jim">test</a>
正确答案:A
Spring MVC局部异常处理,自定义两个异常:UserException.java和BaseException.java,下面异常处理方法handlerException()要处理这两个异常,请补全关键代码()
正确答案:AB
试题解析:@ExceptionHandler注解,value是一个数组
在spring中,配置Hibernate事务管理器(Hibernate TransactionManager)时,需要注入的属性名称是()
A.dataSource
B.sessionFactory
C.baseHibernateDao
D.transactionProxyFactoryBean
正确答案:A
下列关于ModelAndView的说法错误的是()
A.控制器处理方法的返回值若为:ModelAndView,则即可以包含视图信息,也可以包含模型数据信息;
B.控制器处理方法的返回值若为:ModelAndView,在处理方法的方法体内,除了通过serViewName()或者setView()设置视图,还必须通过addObject()添加模型数据;
C.ModelAndView的addObject()方法根addAllObjects()方法区别:前者添加一个对象到model中,后者是添加一个map对象;
D.ModelAndView.setViewName("welcome"),中的welcome是逻辑视图名,并非真正的视图对象;
正确答案:B
试题解析:选项B错误,控制器处理方法的返回值若为:ModelAndView,在处理方法的方法体内,除了通过setViewName或者setView设置视图,不一定要添加模型数据,根据具体需求,若不需要模型数据的话,只返回一个逻辑视图名即可。
关于model I开发模式和Model II开发模式的对比,下列说法错误的是()
A.Model II的结果更加清晰;
B.Model I更利于小组分工合作;
C.Model I的组件更难于重用;
D.Model I开发出来的项目更难以维护
正确答案:B
试题解析:Model I是不利于小组分工的,它只适用于小型项目。因为Model I把所有业务、界面都整合在一起,所以不是很方便小组的分工。
在使用Spring表单标签之前,需要在jsp页面上先引入标签库:
<%@ taglib perfix="fm" uri="http"//www.springframework.org/tags/form" %>那么在此页面上使用spring标签正确的是()
A.<form:form action="">...</form:form>
B.<fm:input text=""/>
C.<fm:errors path="*"/>
D.<form:password>
正确答案:C
以下关于spring自动装配与依赖检查的说法中错误的是()
A.可以通过bean元素的dependency-check属性设置依赖检查
B.可以通过笨啊元素的autowire属性设置自动装配;
C.也可以通过beans元素的autowire属性设置全局自动装配;
D.自动装配减少了配置的工作量,但也降低了依赖关系的清晰性和透明性;
正确答案:C
试题解析:此题考查的是Spring-自动装配与依赖检查,abd说法正确,Spring自动装配与依赖检查也可以通过beans元素的default-autowire属性设置全局自动装配,不是autowire,c的说法不对,所以正确答案是c。
使用InternalResourceViewResolver作为视图解析器,需要进行配置:
若一个控制类的处理方法返回一个字符串:return "user/userList",那么通过已配置号的这个视图解析器,解析成真正的视图对象应该是()
A./user/userlist.jsp
B./WEB-INF/jsp/user/userlist.jsp
C./jsp/user/userlist.jsp
D./WEB-INF/jsp/user/userlist.jsp
正确答案:B
关于spring框架说法错误的是()
A.spring是一个轻量级的企业级开发框架;
B.spring框架的核心是一个AOP容器;
C.spring有2个主要目标 一是让现有技术更易于使用,二是促进良好的编程习惯;
D.spring坚持一个原则:对于已有较好解决方案的领域,spring绝不重复实现,只对现有方案提供支持;
正确答案:B
在springmvc中,以下描述错误的是()
A.SpringMVC中必须是实现了Handler接口的JavaBean才能成为请求处理器;
B.DisPatcherServlet是springMVC的前端servlet,和任何的servlet一样,必须在web.xml中配置后,才能起作用;
C.在web.xml中,根据servlet-mapping的url不同,可以配置多个DisPatcherServlet
D.ModelAndView中的view逻辑视图名,而非真正的视图对象;
正确答案:A
试题解析:A选项说法错误,SpringMVC中并没有定义一个Handler接口,实际上任何一个JavaBean都可以成为请求处理器。
在sprign应用中,由于项目规模变大,Spring配置文件的规模也会相应增长,这就造成配置文件的可读性和可维护性变差,此时就需要对其进行拆分,下面选项不能实现spring配置文件拆分的是()
正确答案:D