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