ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

spring面经总结

2022-09-10 17:01:01  阅读:289  来源: 互联网

标签:总结 请求 spring 面经 bean Handler DispatcherServlet View


 

Core Container(核心模块,为其他模块提供支持):spring-core,spring-beans AOP:面向切面 Data Access(数据库支持):spring-jdbc,spring-tx,spring-orm Spring Web: spring-mvc(提供spring对mvc的实现,赋予 Spring 快速构建 MVC 架构的 Web 程序的能⼒), spring-websocket,spring-web(web功能的实现提供一些最基础的支持)   springboot:简化配置   IOC:一种设计思想,将创建对象的控制权交由 Spring 框架来管理 举例: 在实际项⽬中⼀个 Service 类可能依赖了很多其他的类,假如我们需要实例化这个 Service,你可能 要每次都要搞清这个 Service 所有底层类的构造函数,这可能会把⼈逼疯。如果利⽤ IoC 的话,你 只需要配置好,然后在需要的地⽅引⽤就⾏了,这⼤⼤增加了项⽬的可维护性且降低了开发难度。   IOC容器:一个map,value存放对象   spring时代:xml配置bean springboot时代:注解配置bean   bean:被IOC容器管理的对象   @Autowied:默认根据类型匹配,如果有多个实现类,变成按名称匹配,@Qualifier显示指定名称。 @Resource:JDK提供的注解,name属性   bean作用域:singleton(单例),prototype(每次获取都创建一个新的),request(每次http请求产生一个新的,只在该request中有效),session(每个session产生一个新的),websocket   单例bean线程安全问题:1.用threadLocal储存 2.用fianl 修饰成员变量 3.不要设置成员变量   bean的生命周期:1.根据注解或者xml配置,利用反射创建一个bean实例 2.set方法设置bean的属性值 3根据aware设置相关依赖 4.bean前置处理 5.bean后置处理 6.destory销毁bean (不是很了解,之后细看)   AOP:将与业务无关的公共逻辑封装起来,减少重复代码,降低耦合,无侵入性   AOP基于动态代理实现:   JDK代理:被代理对象实现了某个接口   CGLIB:被代理对象没有实现接口   Spring MVC:   DispatcherServlet: 入口,负责接收请求、分发,并基于客户端响应。   HandlerMapping:处理映射器,根据uri匹配handler,类似于map,再将拦截器与handler封装   HandlerAdapter:处理器适配器   Handler:请求处理器,对应controller里的requesgtmapping方法   ViewResolver:视图解析器,将Handler 返回的视图解析并渲染,并传递给 DispatcherServlet 响应客户端   1. 客户端(浏览器)发送请求, DispatcherServlet 拦截请求。 2. DispatcherServlet 根据请求信息调⽤ HandlerMapping 。 HandlerMapping 根据 uri 去匹配查找 能处理的 Handler (也就是我们平常说的 Controller 控制器) ,并会将请求涉及到的拦截器和 Handler ⼀起封装。 3. DispatcherServlet 调⽤ HandlerAdapter 适配执⾏ Handler 。 4. Handler 完成对⽤户请求的处理后,会返回⼀个 ModelAndView 对象给 DispatcherServlet , ModelAndView 顾名思义,包含了数据模型以及相应的视图的信 息。 Model 是返回的数据对象, View 是个逻辑上的 View 。 5. ViewResolver 会根据逻辑 View 查找实际的 View 。6. DispaterServlet 把返回的 Model 传给 View (视图渲染)。 7. 把 View 返回给请求者(浏览器)   事务传播级别:       

 

标签:总结,请求,spring,面经,bean,Handler,DispatcherServlet,View
来源: https://www.cnblogs.com/sjj123/p/16677854.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有