ssm考试题及答案_第1页
ssm考试题及答案_第2页
ssm考试题及答案_第3页
ssm考试题及答案_第4页
ssm考试题及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ssm考试题及答案一、单项选择题(每题2分,共20分)1.以下关于SpringIOC容器的描述,错误的是()A.IOC容器通过依赖注入管理Bean之间的依赖关系B.ApplicationContext是BeanFactory的子接口,提供更丰富的企业级功能C.默认情况下,Spring容器中Bean的作用域是singletonD.使用@Autowired注解时,必须配合@Qualifier才能完成注入2.SpringMVC中,负责将请求参数绑定到控制器方法参数的组件是()A.HandlerMappingB.HandlerAdapterC.ModelAndViewD.WebDataBinder3.MyBatis中,用于定义动态SQL的标签不包括()A.<if>B.<foreach>C.<choose>D.<resultMap>4.关于SpringAOP的通知类型,以下对应关系错误的是()A.@Before:前置通知B.@AfterReturning:返回后通知C.@Around:环绕通知D.@AfterThrowing:异常后通知5.在SSM整合中,MyBatis的SqlSessionFactory通常通过()来配置数据源A.DruidDataSourceB.SqlSessionTemplateC.MapperScannerConfigurerD.TransactionAwareDataSourceProxy6.SpringMVC的DispatcherServlet默认的URL映射配置为()时,会拦截所有请求(包括静态资源)A./B./C..doD./index7.MyBatis中,{}和${}的主要区别是()A.{}会进行SQL注入防护,${}直接拼接字符串B.{}用于参数替换,${}用于表名/列名替换C.两者在动态SQL中可以互换使用D.{}只能用于基本类型,${}可用于对象属性8.以下不属于Spring事务传播行为的是()A.PROPAGATION_REQUIREDB.PROPAGATION_SUPPORTSC.PROPAGATION_NESTEDD.PROPAGATION_ASYNC9.SpringMVC中,@RequestParam注解的required属性默认值是()A.trueB.falseC.nullD.不设置时自动推断10.MyBatis的二级缓存默认是()A.开启的,且全局共享B.关闭的,需要在配置文件中启用C.仅对单个Mapper生效D.基于内存的LRU缓存二、填空题(每空2分,共20分)1.SpringIOC容器的核心接口是__________和__________。2.SpringMVC的视图解析器默认实现类是__________,通常需要配置__________前缀和__________后缀。3.MyBatis的映射文件中,<select>标签的resultType属性用于指定__________,resultMap属性用于指定__________。4.SpringAOP的代理方式有两种:基于__________的JDK动态代理和基于__________的CGLIB代理。5.在SSM整合中,通常使用__________来管理MyBatis的Mapper接口扫描,其核心属性是__________。三、简答题(每题10分,共40分)1.简述SpringIOC的实现原理及优势。2.说明SpringMVC处理HTTP请求的完整流程(从发送请求到返回响应)。3.对比MyBatis一级缓存和二级缓存的区别(作用域、生命周期、触发条件)。4.列举SSM整合的关键配置步骤(至少5步),并说明每个步骤的作用。四、编程题(共20分)假设某项目需要实现用户信息管理功能,要求:(1)使用SSM框架整合;(2)实现User实体类(id、username、password、email);(3)编写UserMapper接口及对应的XML映射文件,包含根据id查询用户(selectUserById)和分页查询用户(selectUserByPage,参数为pageNum、pageSize)两个方法;(4)编写UserService接口及实现类,要求使用@Transactional注解管理事务;(5)编写UserController,处理/queryUser/{id}(GET)和/listUsers(POST,接收pageNum和pageSize参数)两个请求。答案一、单项选择题1.D(@Autowired默认按类型注入,冲突时使用@Qualifier)2.D(WebDataBinder负责参数绑定)3.D(<resultMap>用于结果映射,非动态SQL标签)4.B(@AfterReturning是返回后通知,正确)5.A(DruidDataSource是数据源实现类)6.B(/会拦截所有请求,/拦截除静态资源外的请求)7.A({}预编译防护注入,${}直接拼接)8.D(PROPAGATION_ASYNC是异步注解属性,非事务传播行为)9.A(@RequestParam的required默认true)10.B(MyBatis二级缓存默认关闭,需<settingname="cacheEnabled"value="true"/>启用)二、填空题1.BeanFactory、ApplicationContext2.InternalResourceViewResolver、prefix、suffix3.简单类型/实体类全限定名、自定义结果映射4.接口、类5.MapperScannerConfigurer、basePackage三、简答题1.SpringIOC(控制反转)的实现原理:核心是通过反射机制实例化Bean,并通过配置(XML/注解)描述Bean之间的依赖关系。容器启动时读取配置元数据(如@Bean、<bean>标签),解析Bean定义,然后根据依赖关系递归创建Bean实例,最终将所有Bean存储在容器中供外部调用。优势:解耦(对象创建权由容器管理)、可维护性(配置集中管理)、可测试性(方便模拟依赖)、支持声明式服务(如事务、AOP)。2.SpringMVC请求处理流程:(1)客户端发送请求到DispatcherServlet;(2)DispatcherServlet通过HandlerMapping找到处理该请求的Handler(控制器方法)及对应的拦截器;(3)DispatcherServlet调用HandlerAdapter执行Handler方法,传递WebDataBinder绑定请求参数;(4)Handler方法处理业务逻辑,返回ModelAndView对象(包含模型数据和视图名称);(5)DispatcherServlet通过ViewResolver将视图名称解析为具体的View(如JSP、Thymeleaf);(6)View渲染模型数据,提供响应内容返回客户端。3.MyBatis一级缓存与二级缓存的区别:作用域:一级缓存是SqlSession级别的(同一个SqlSession共享);二级缓存是Mapper(命名空间)级别的(多个SqlSession共享,需配置)。生命周期:一级缓存随SqlSession关闭而销毁;二级缓存随应用程序生命周期存在(可配置为永久或基于LRU回收)。触发条件:一级缓存自动开启,执行相同SQL(相同参数)时触发;二级缓存需手动开启(全局cacheEnabled=true,Mapper配置<cache/>),且需SqlSession提交/关闭后才会将数据存入。4.SSM整合关键步骤:(1)配置Spring核心容器(applicationContext.xml):定义数据源(如Druid)、事务管理器(DataSourceTransactionManager)、MyBatis的SqlSessionFactoryBean(关联数据源和mybatis-config.xml)。(2)配置MyBatis扫描(MapperScannerConfigurer):指定basePackage扫描Mapper接口,自动提供代理对象注入Spring容器。(3)配置SpringMVC(springmvc.xml):开启注解驱动(<mvc:annotation-driven/>)、视图解析器、静态资源映射(<mvc:resources/>)。(4)配置Web.xml:注册DispatcherServlet(映射/)、ContextLoaderListener(指定spring配置位置)、CharacterEncodingFilter(解决乱码)。(5)整合事务管理:在Spring配置中启用@Transactional注解驱动(<tx:annotation-driven/>),在Service方法上添加注解声明事务属性(如propagation、isolation)。四、编程题(1)User实体类(省略getter/setter):```javapublicclassUser{privateIntegerid;privateStringusername;privateStringpassword;privateStringemail;//构造方法、getter、setter}```(2)UserMapper接口及XML映射文件:```javapublicinterfaceUserMapper{UserselectUserById(Integerid);List<User>selectUserByPage(@Param("offset")Integeroffset,@Param("pageSize")IntegerpageSize);}``````xml<!-UserMapper.xml--><mappernamespace="com.example.mapper.UserMapper"><selectid="selectUserById"parameterType="java.lang.Integer"resultType="com.example.entity.User">SELECTFROMuserWHEREid={id}</select><selectid="selectUserByPage"resultType="com.example.entity.User">SELECTFROMuserLIMIT{offset},{pageSize}</select></mapper>```(3)UserService接口及实现类:```javapublicinterfaceUserService{UsergetUserById(Integerid);List<User>listUsers(IntegerpageNum,IntegerpageSize);}@ServicepublicclassUserServiceImplimplementsUserService{@AutowiredprivateUserMapperuserMapper;@Override@Transactional(readOnly=true)publicUsergetUserById(Integerid){returnuserMapper.selectUserById(id);}@Override@Transactional(readOnly=true)publicList<User>listUsers(IntegerpageNum,IntegerpageSize){Integeroffset=(pageNum1)pageSize;returnuserMapper.selectUserByPage(offset,pageSize);}}```(4)UserContr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论