三大框架面试题

1.spring

1.1 Spring IOC控制反转

IOC控制反转指将对象的创建,存储,管理交给spring容器.spring容器是spring中的一个核心模块,底层可以理解为一个map集合.

1.2 Spring DI

Spring DI 即依赖注入,指在创建对象的同时或之后,如何给对象的属性赋值.赋值方式有三种

Set方式注入
构造方法注入
基于注解的注入

1.3Spring中用到的设计模式

工厂设计模式 : Spring使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。
代理设计模式 : Spring AOP 功能的实现。
单例设计模式 : Spring 中的 Bean 默认都是单例的。
模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。
包装器设计模式 : 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。
观察者模式: Spring 事件驱动模型就是观察者模式很经典的一个应用。
适配器模式 :Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller。

1.4 Spring框架中的单例bean是线程安全的吗?

不是,Spring框架中的单例bean不是线程安全的。

spring 中的 bean 默认是单例模式,spring 框架并没有对单例 bean 进行多线程的封装处理。

实际上大部分时候 spring bean 无状态的(比如 dao 类),所有某种程度上来说 bean 也是安全的,但如果 bean 有状态的话(比如 view model 对象),那就要开发者自己去保证线程安全了,最简单的就是改变 bean 的作用域,把“singleton”变更为“prototype”,这样请求 bean 相当于 new Bean()了,所以就可以保证线程安全了。

有状态就是有数据存储功能。
无状态就是不会保存数据。

1.5 Spring支持的事务管理类型, spring 事务实现方式有哪些?

Spring支持两种类型的事务管理:
编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。

声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。

1.6Spring事务的实现方式和实现原理

Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。真正的数据库层的事务提交和回滚是通过binlog或者redo log实现的。
在这里插入图片描述

2.Spring MVC

2.1什么是DispatcherServlet

前端控制器,负责接受请求,调用其他组件处理请求,响应结果.相当于中央处理器,是整个流程的控制中心

2.2Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?

答:是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段。

2.3 Spring MVC的工作流程?

在这里插入图片描述

1.用户发现送请求给前端控制器。前端控制器的作用的接受请求,调用其他组件,响应结果。相当于中央处理器,是整个流程的控制中心。

2.前端控制器会调用处理器映射器,处理器映射器会根据url找到具体的处理器,并生成处理器对象和拦截器(如果有则生成),并将两个结果一并返回。

3.前段控制器会调用处理器适配器,处理器适配器经过适配调用具体的处理器(后端控制器),处理器执行会返回ModelAndView给处理器是配置,处理器适配器再把结果返回给前段控制器。

4.前端控制器将ModelAndView传给视图解析器,视图解析器经过解析后返回视图给前端控制器

5.前端控制器对视图进行渲染,即将模型数据填充至视图中

6.前段控制器将渲染后的视图响应给用户

2.4 MVC是什么?MVC设计模式的好处有哪些

mvc是一种设计模式(设计模式就是日常开发中编写代码的一种好的方法和

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值