spring面经总结

 

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 返回给请求者(浏览器)
 
视图解析器: 拼接前缀后缀,然后去寻找实际的view
URLBasedViewResolver
InternalResourceViewResolver
FreeMarkerViewResolver
 
事务传播级别:
 
  
 

 

posted @ 2022-09-10 16:52  无极是一种信仰  阅读(92)  评论(0编辑  收藏  举报