第十部分 Spring

80 阅读3分钟

90. Spring简介

Spring是一个轻量级的控制反转和面向切面的容器框架

91. AOP是什么?

AOP:面向切面编程,简单来说,就是将那些与业务无关,却被业务模块所共同调用的逻辑封装起来,以便减少系统的重复代码,降低模块间的耦合度,如权限认证,日志,事务处理。

92. IOC是什么?

IOC:控制反转,借助于第三方(IOC容器)实现具有依赖关系的对象之间的解耦

93. Spring有哪些模块?

Spring框架至今已集成了20多个模块,这些模块主要被分为核心容器,数据访问/集成,Web,AOP,工具,消息和测试模块

94. Spring常用的注入方法有哪些?

Spring通过DI(依赖注入)实现IOC,常用的注入方法主要有三种:

  • 构造方法注入
  • setter注入
  • 基于注解的注入

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

容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性

96. Spring支持几种Bean的作用域?

  • singleton:单例模式
  • prototype:原型模式,每次通过容器的getBean方法都会产生一个新的Bean实例
  • request:对于每次Http请求,使用request定义的Bean都将产生一个新实例
  • session
  • globalsession:全局的Http Session

97. Spring 自动装配 Bean的方式?

  • 隐式的bean发现机制和自动装配
  • 在Java代码或者XML中进行配置

98. Spring 事务实现方法有哪些?

  • 编程式事务,在代码中调用beginTrasaction(), commit(), rollback()等事务管理相关的方法
  • 基于 TransactionProxyFactoryBean 的声明式事务管理
  • 基于@Transactional的声明式事务管理
  • 基于Aspectj AOP 配置事务

99. Spring的事务隔离

  • 脏读:一个事务读到另一个事务未提交的更新数据
  • 幻读:一个事务在第二次读取时读取到了另一个事务提交的结果
  • 不可重复读:在一个事务中执行两个相同的读操作,先后得到的结果不同 不可重复读针对的是值的不同,幻读指的是数据条数的不同。

100. Spring MVC 的运行流程

  1. 用户向服务器发送请求,请求被Spring前端控制DispatcherServlet捕获
  2. DispatcherServlet对请求URL进行解析,得到URI,然后根据该URI,调用HandlerMapping得到该Handler配置的所有相关对象
  3. DispatcherServlet根据得到的Handler,选择一个合适的HandlerAdapter
  4. 提取request中的模型参数,开始执行Handler(Controller)
  5. Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象 6.选择一个合适的ViewResolver
  6. ViewResolver结合Model和View,来渲染视图
  7. 将渲染结果返回给客户端

101. Spring MVC有哪些组件

  • DispatcherServlet:中央控制器,将请求转发给具体的控制类
  • Controller:具体处理请求的控制器
  • HandlerMapping:映射处理器,负责映射中央处理器转发给Controller时的映射策略
  • ModelAndView:服务层返回的数据和视图层的封装类
  • ViewResolver:视图解析器,解析具体的视图
  • Interceptors:拦截器,负责拦截请求

102. @RequestMapping的作用是什么?

用来处理请求地址映射的注解,可用于类或方法上

该注解有六个属性

values,method

  • value:指定请求的实际地址
  • method:指定请求的method类型

consumes,produces

  • consumes:指定处理请求的ContentType
  • produces:指定返回的内容类型

params,headers

  • params:指定request中必须包含的参数
  • headers:指定request中必须包含的header值

103. @Autowired的作用

自动装配