点击上方"Java学习之道",选择"关注"公众号

每天10:24,干货准时送达!

本文作者:唐_方

链接:https://blog.csdn.net/qq_39031310

一、

Spring面试题

1、Spring 在ssm中起什么作用?

  • Spring:轻量级框架

  • 作用:Bean工厂,用来管理Bean的生命周期和框架集成。

  • 两大核心:1、IOC/DI(控制反转/依赖注入) :把dao依赖注入到service层,service层反转给action层,Spring顶层容器为BeanFactory。2、AOP:面向切面编程

2、Spring的事务?

  • 编程式事务管理:编程方式管理事务,极大灵活性,难维护。

  • 声明式事务管理:可以将业务代码和事务管理分离,用注解和xml配置来管理事务。

3、IOC 在项目中的作用?

作用:Ioc解决对象之间的依赖问题,把所有Bean的依赖关系通过配置文件或注解关联起来,降低了耦合度。

4、Spring的配置文件中的内容?

  • 开启事务注解驱动

  • 事务管理器

  • 开启注解功能,并配置扫描包

  • 配置数据库

  • 配置SQL会话工厂,别名,映射文件

  • 不用编写Dao层的实现类

5、Spring下的注解?

  • 注册:@Controller @Service @Component

  • 注入:@Autowired @Resource

  • 请求地址:@RequestMapping

  • 返回具体数据类型而非跳转:@ResponseBody

6、Spring DI 的三种方式?

构造器注入:通过构造方法初始化

index="0" type="java.lang.String" value="宝马">

setter方法注入:通过setter方法初始化

name="id" value="1111">

接口注入

7、Spring主要使用了什么模式?

  • 工厂模式:每个Bean的创建通过方法

  • 单例模式:默认的每个Bean的作用域都是单例

  • 代理模式:关于Aop的实现通过代理模式

8、IOC,AOP的实现原理?

  • IOC:通过反射机制生成对象注入

  • AOP:动态代理

二、

SpringMvc面试题

1、SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?

  • 问题:单例模式,在多线程访问时有线程安全问题

  • 解决方法:不要用同步,在控制器里面不能写字段

2、SpringMvc 中控制器的注解?

@Controller:该注解表明该类扮演控制器的角色

3、@RequestMapping 注解用在类上的作用?

作用:用来映射一个URL到一个类或者一个特定的处理方法上

4、前台多个参数,这些参数都是一个对象,快速得到对象?

方法:直接在方法中声明这个对象,SpringMvc就自动把属性赋值到这个对象里面

5、SpringMvc中函数的返回值?

String,ModelAndView,List,Set 等

一般String,Ajax请求,返回一个List集合

6、SpringMvc中的转发和重定向?

  • 转发:return:“hello”

  • 重定向 :return:“redirect:hello.jsp”

7、SpringMvc和Ajax之间的相互调用?

通过JackSon框架把java里面对象直接转换成js可识别的json对象,具体步骤如下:

  • 加入JackSon.jar

  • 在配置文件中配置json的映射

  • 在接受Ajax方法里面直接返回Object,list等,方法前面需要加上注解@ResponseBody

8、SpringMvc的工作流程图?

9、Struts2 和 SpringMvc的区别?

入口不同:
  • Struts2:filter过滤器

  • SpringMvc:一个Servlet即前端控制器

开发方式不同:
  • Struts2:基于类开发,传递参数通过类的属性,只能设置为多例

  • SpringMvc:基于方法开发(一个url对应一个方法),请求参数传递到方法形参,可以为单例也可以为多例(建议单例)

请求方式不同:
  • Struts2:值栈村塾请求和响应的数据,通过OGNL存取数据

  • SpringMvc:通过参数解析器将request请求内容解析,给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过request域传输到页面,jsp视图解析器默认使用的是jstl。

三、

Mybatis面试题

1、Ibatis和Mybatis?

  • Ibatis:2010年,apache的Ibatis框架停止更新,并移交给了google团队,同时更名为MyBatis。从2010年后Ibatis在没更新过,彻底变成了一个孤儿框架。一个没人维护的框架注定被mybatis拍在沙滩上。

  • Mybatis:Ibatis的升级版本。

2、什么是Mybatis的接口绑定,有什么好处?

Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。

3、什么情况用注解,什么情况用xml绑定?

  • 注解使用情况:Sql语句简单时

  • xml绑定使用情况:xml绑定 (@RequestMap用来绑定xml文件)

4、Mybatis在核心处理类叫什么?

SqlSession

5、查询表名和返回实体Bean对象不一致,如何处理?

映射键值对即可

column="title" property="title" javaType="java.lang.String"/>

  • column:数据库中表的列名

  • property:实体Bean中的属性名

6、Mybatis的好处?

  • 把Sql语句从Java中独立出来。

  • 封装了底层的JDBC,API的调用,并且能够将结果集自动转换成JavaBean对象,简化了Java数据库编程的重复工作。

  • 自己编写Sql语句,更加的灵活。

  • 入参无需用对象封装(或者map封装),使用@Param注解

7、Mybatis配置一对多?

property="topicComment" column="id"

ofType="com.tmf.bbs.pojo.Comment" select="selectComment" />

  • property:属性名

  • column:共同列

  • ofType:集合中元素的类型

  • select:要连接的查询

8、Mybatis配置一对一?

property="topicType" select="selectType"

column="topics_type_id" javaType="com.tmf.bbs.pojo.Type"/>

  • property:属性名

  • select:要连接的查询

  • column:共同列

  • javaType:集合中元素的类型

9 、${} 和 #{}的区别?

  • ${}:简单字符串替换,把${}直接替换成变量的值,不做任何转换,这种是取值以后再去编译SQL语句。

  • #{}:预编译处理,sql中的#{}替换成?,补全预编译语句,有效的防止Sql语句注入,这种取值是编译好SQL语句再取值。

总结:一般用#{}来进行列的代替

10、获取上一次自动生成的主键值?

select last _insert_id()

11、Mybatis如何分页,分页原理?

  • RowBounds对象分页

  • 在Sql内直接书写,带有物理分页

12、Mybatis工作原理?

原理:
  • 通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件中构建出SqlSessionFactory。

  • SqlSessionFactory开启一个SqlSession,通过SqlSession实例获得Mapper对象并且运行Mapper映射的Sql语句。

  • 完成数据库的CRUD操作和事务提交,关闭SqlSession。

 | 更多精彩文章 -


  • 开源的13个Spring Boot 优秀学习项目!超53K星,一网打尽!

  • 如何从程序员日常的行为特征,判断出他所使用的编程语言

  • 一文彻底搞懂微服务架构

  • 超级全面的MySQL优化面试解析

  • 手写Java线程池(超详细解说)

  • 为什么阿里巴巴要求程序员谨慎修改serialVersionUID 字段的值?

  • 学会这几个Redis技巧,让你的程序快如闪电

  • 高能7分钟!程序员吐槽大会

-资源助手-

>>>CSDN下载服务 || 技术讨论群<<<

△想知道更多?长按/扫码关注我吧↑↑↑

ssm框架重定向_精选 SSM 框架面试题整理相关推荐

  1. flutter框架优缺点_小程序框架全面测评

    最近前端届多端框架频出,相信很多有代码多端运行需求的开发者都会产生一些疑惑:这些框架都有什么优缺点?到底应该用哪个? 作为 Taro 开发团队一员,笔者想在本文尽量站在一个客观公正的角度去评价各个框架 ...

  2. python bottle框架 重定向_微型 Python Web 框架: Bottle

    Bottle 是一个非常小巧但高效的微型 Python Web 框架,它被设计为仅仅只有一个文件的Python模块,并且除Python标准库外,它不依赖于任何第三方模块. 路由(Routing):将请 ...

  3. ssm项目模板_基于SSM的论坛系统发布可商业、学习、毕设

    基于SSM的论坛系统发布,界面非常的漂亮,功能很齐全,非常的6-- SSM旅游论坛是一款基于JAVA企业级平台研发的社交管理系统,是一个可以用来搭建门户.群组.论坛和问答的社区系统,是将SNS社会化网 ...

  4. html两个框架同时_两个框架的故事

    html两个框架同时 If you're like me you have a favourite framework you gravitate towards in every project. ...

  5. java接口测试框架搭建_接口自动化测试框架搭建

    一.原理及特点 参数放在XML文件中进行管理 用httpClient简单封装一个httpUtils工具类 测试用例管理使用了testNg管理,使用了TestNG参数化测试,通过xml文件来执行case ...

  6. webix框架中文版_使用Webix框架创建电子邮件客户端的十步指南

    webix框架中文版 在本文中,我将讨论在免费的Webix框架的帮助下为电子邮件客户端创建用户界面的过程. 这是一个JavaScript和HTML5框架,用于开发具有响应用户界面的跨平台,数据丰富的W ...

  7. python bottle框架 重定向_Python的web框架bottle静态文件的路径

    这几天想用bottle来做一个简单的基于web页面的小应用,在调用显示静态文件时被路径卡了半天,现在把问题和解决办法写出来备用和分享给有需要的人. 先上代码: from bottle import s ...

  8. 若依的框架怎么样_若依框架的功能代码

    web通用的代码块package com.ruoyi.common.core.controller; import java.beans.PropertyEditorSupport; import j ...

  9. android edittext不可复制_精选Android中高级面试题:性能优化,JNI,设计模式

    性能优化 1.图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理? 参考回答:首先我们要清楚图片的三级缓存是如何的: 如果内存足够时不回收.内存不够时就回收软引用对象 2.内存中 ...

最新文章

  1. 【Rocket MQ】RocketMQ4.2.0 和 spring boot的结合使用,实现分布式事务
  2. 2019牛客暑期多校训练营(第九场) E All men are brothers
  3. 终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
  4. 发布与订阅消息--Redis学习笔记八
  5. C#实现 Linq 序列的Distinct—— IEnumerable.Distinct()——IEqualityComparer
  6. 10.3 考试 (考得不好)
  7. EMC业务连续性和容灾服务
  8. 四川第七届 C Censor (字符串哈希)
  9. (56)FPGA条件选择有优先级(case)
  10. wpp助手怎么连接服务器,aewpp.com
  11. layer弹出层 iframe层去掉滚动条 content : [url , 'no']
  12. Atitit 自然语言处理(NLP)的应用 与 搜索引擎 目录 1.1. 搜索引擎并不是自然语言处理(NLP)的唯一应用。 2 1.2. NLP的应用 2 1.3. 社交网站信息流, 2 1.4.
  13. 修改android设备型号
  14. C#编写CPU压力测试程序
  15. Random随机数和for循环,实现猜数游戏和双色球
  16. php文件格式,php是什么文件格式
  17. 三种PS切图方法—简单易懂
  18. Mac 环境endnote 各种问题解决方法和word各种技巧汇总
  19. 亚信安全助手、杀毒软件卸载
  20. HEU 2010 France '98

热门文章

  1. 没有tpm不能装win11的解决方法
  2. Androidstudio抽取成员变量快捷键 快捷键大全 自定义setting文件
  3. 你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问
  4. mysql关闭显示无权限_如何关闭mysql远程登录权限
  5. MTK 10A APP,菜单,资源添加
  6. STM32F103mini教程学习总结与心得(四)---->看门狗
  7. js uri解码_js对url进行编码和解码(三种方式区别)(转)
  8. JQ实现列表增删以及上下移动
  9. 洛谷——P1830 轰炸III
  10. 基本结构标签(HTML)