90.为什么要使用 spring?

    解决企业应用开发的复杂性,IOC、aop

91.解释一下什么是 aop?

  面向切面编程。。。。

92.解释一下什么是 ioc?

  控制反转。。

93.spring 有哪些主要模块?

core,context,aop,orm,mvc,web,dao

94.spring 常用的注入方式有哪些?

  Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。

95.spring 中的 bean 是线程安全的吗?

  无状态的bean是线程安全的,有状态的不是线程安全的

96.spring 支持几种 bean 的作用域?

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作用域。

View Code

97.spring 自动装配 bean 有哪些方式?

  no,byname,bytype,constructor,autodect

98.spring 事务实现方式有哪些?

  编程式事务,声明式事务

99.说一下 spring 的事务隔离?

  

ISOLATION_DEFAULT    这是个 PlatfromTransactionManager 默认的隔离级别,使用数据库默认的事务隔离级别。另外四个与 JDBC 的隔离级别相对应。
ISOLATION_READ_UNCOMMITTED    这是事务最低的隔离级别,它充许另外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。
ISOLATION_READ_COMMITTED    保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。
ISOLATION_REPEATABLE_READ    这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。
ISOLATION_SERIALIZABLE    这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。丢失更新:两个事务同时更新一行数据,最后一个事务的更新会覆盖掉第一个事务的更新,从而导致第一个事务更新的数据丢失,这是由于没有加锁造成的;
幻读:同样的事务操作过程中,不同时间段多次(不同事务)读取同一数据,读取到的内容不一致(一般是行数变多或变少)。
脏读:一个事务读取到另外一个未提及事务的内容,即为脏读。
不可重复读:同一事务中,多次读取内容不一致(一般行数不变,而内容变了)

View Code

100.说一下 spring mvc 运行流程?

(1)首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;(2)DispatcherServlet——>HandlerMapping,处理器映射器将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)对象;(3)DispatcherServlet——>HandlerAdapter,处理器适配器将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;(4)HandlerAdapter——>调用处理器相应功能处理方法,并返回一个ModelAndView对象(包含模型数据、逻辑视图名);(5)ModelAndView对象(Model部分是业务对象返回的模型数据,View部分为逻辑视图名)——> ViewResolver, 视图解析器将把逻辑视图名解析为具体的View;(6)View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构;(7)返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。

View Code

101.spring mvc 有哪些组件?

  HandlerMapping,handler,handleradaptor,modelandview,ViewResolver,view

102.@RequestMapping 的作用是什么?

103.@Autowired 的作用是什么?

转载于:https://www.cnblogs.com/nzxj/p/10470428.html

面试简单整理之spring、spring mvc相关推荐

  1. 多个切点 boot spring_全网独家Spring/Cloud/MVC/Boot,脑图+面试+进阶,就问你服不服?...

    近期搜刮了一些Spring全家桶系列的思维脑图.经典面试题和进阶学习的PDF笔记(非常nice),Spring+SpringCloud+SpringMVC+SpringBoot,一个都没落下全都有!一 ...

  2. springboot 启动时could not exec java_面试被问为什么使用Spring Boot?答案好像没那么简单...

    公众号[JavaQ]原创,专注分享Java基础原理分析.实战技术.微服务架构.分布式系统构建,诚邀点赞关注! 面试官:项目中有使用Spring Boot吗? 小小白:用过. 面试官:说一下为什么要使用 ...

  3. java 切面_Java笔试面试精心整理得到89道Spring 核心知识【收藏向】

    点击上方"蓝字",关注了解更多 Spring Framework 简称 Spring,是 Java 开发中最常用的框架,地位仅次于 Java API,就连近几年比较流行的微服务框架 ...

  4. ssh(Spring+Spring mvc+hibernate)简单增删改查案例

    最近和spring mvc干上了,各种奇葩问题,各种解决...现在想想这历程还挺艰辛的,好了,不在这墨迹了,我们进入正题. 据说,现在Springmvc很流行,既然很流行就搞搞它,看看是个什么鬼,于是 ...

  5. 简单开源java ssm_[VIP源码]【S006】SSM(Spring+Spring MVC+Mybatis) java开源博客管理系统项目源码...

    java源码项目名称:SSM(Spring+Spring MVC+Mybatis) java开源博客管理系统项目源码  java项目源码 1 ?, R, _* q  n8 v) S$ R7 ?百度网盘 ...

  6. 百度面试官:来聊聊Spring吧

    文章目录 Spring入门和IOC介绍 1. Spring介绍 1.1侵入式概念 1.2 松耦合概念 1.3 切面编程 2. 引出Spring 2.1 IOC控制反转 3.Spring模块 4. Co ...

  7. spring + spring mvc + tomcat 面试题(史上最全)下篇

    场景1:单例的setter注入 这种注入方式应该是spring用的最多的,代码如下: @Service publicclass TestService1 {@Autowiredprivate Test ...

  8. 面试被吊打!Spring Boot 面试,一个问题就干趴下了

    认真写文章,用心做分享. Spring Boot概述 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建.运行.调试.部署等.使用Spring Bo ...

  9. 去大厂面试Java开发,被Spring问自闭了...

    前言: 前几天好朋友发来喜讯,跳槽一个月了,面试了有二十家公司,在面试官的狂轰滥炸下终于拿到了不错的offer.但是比较可惜的是朋友内推的大厂面试失败了,而且还是在Spring上,就令人挺无语的.他说 ...

最新文章

  1. str.split() 与 str.split(‘ ‘)区别
  2. 线上分享会预告之三维模型检索技术介绍
  3. Computer Organization and Design--计组作业习题(1)
  4. 商业新知产品总监王宇:创业公司不要太看重「增长黑客」运营理念
  5. Android之解决Android10.0通过热点名字和密码连接指定热点网络不能通信问题(2种解决办法)
  6. 网址导航网站源码 仿某菇导航V1.2版
  7. LucasExlucas
  8. 多线程lambda数据捕获
  9. Codeforces 583 DIV2 Robot's Task 贪心
  10. 《MYSQL必知必会》—18.如何使用MySQL的Match()和Against()函数进行全文本搜索以及查询扩展的使用
  11. R语言绘制差异火山图示例
  12. 分销系统之项目架构(第一篇)
  13. 电脑卡住了怎么保存excel_“表格保存不了怎么办“电脑卡死excel怎么保存
  14. ad中按钮开关的符号_SAST Weekly | Word中的公式语法
  15. 解密七种html网页加密解密法
  16. keytool 常用命令
  17. mtk处理器和骁龙对比_联发科(MTK)智能手机处理器平台汇总(含基本参数对比)一览...
  18. 虚化背景(深度映射篇)
  19. WPS:将彻底关闭广告
  20. sql 修改表的字段属性

热门文章

  1. 在Python中实现SVM分类
  2. 线程同步锁 java_java多线程同步之重入锁,详细解析
  3. git连接jenkins_基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!
  4. 强制类型转换规则 java_Java学习——第002天学习笔记整理
  5. c语言程序设计迷宫,C语言程序设计课程设计-迷宫.doc
  6. 我的世界java版怎么打不开_JAVA版我的世界打不开,求助!
  7. 移动端网站优化该注意哪些重点?
  8. 东芝2505扫描软件_东芝P300机械硬盘上膛体验:内存大了,小姐姐再也不愁无处安放了...
  9. linux 下的dd,Linux中的dd命令
  10. 人体上身各部位图_【肝货】画好人体结构,你还需要了解这些