要么做好要么不做
十、Spring/Spring MVC
90.为什么要使用 spring?
是一个轻量级的企业级项目的开发框架,可以和很多优秀的开源框架做到整合。例如mybatis、springMVC、redis、zookeeper等吧。两大核心就是IOC与IOP,控制反转与面向切面编程。
91.解释一下什么是 aop?
aop面向切面编程,把一些通用代码抽取出来,封装在成一个可重用的模块。下一次需要用这些公共的代码时候直接调用即可。 不改变源代码的情况实现功能增强。例如:事务与日志。主要运用代理模式。
好处:简化代码、易维护、易扩展、减少重复代码。
代理模式
92.解释一下什么是 ioc?
程序中我们手动去创建对象的控制权,移交给spring ioc容器进行管理。底层就是用一个Map进行存储对象的。map可以存放各种对象。
ioc容器就像一个工厂一样,不需要关心对象是怎么创建的,只需要配置好文件或者注解即可。
ioc:控制反转与依赖注入
93.spring 有哪些主要模块?
Spring web(创建web应用支持)、spring core(提供IOc依赖注入功能)、spring Aop(面向切面编程)、spring jdbc(提供数据库连接)springORM 、spring test、spring jms(消息服务)
94.spring 常用的注入方式有哪些?
构造器注入
setter注入
注解注入
95.spring 中的 bean 是线程安全的吗?
不安全的的,因为bean采用单例模式。单例模式就是线程不安全的。
96.spring 支持几种 bean 的作用域?
Spring bean 的作用域是Singleton.
singleton:bean在springioc容器中只有一个实例
prototype:一个bean可以有多个实例。
request:每一次http请求都会创建一个bean,作用域:基于web的Spring ApplicationContext下有效。
session:在一个http session 中 创建一个bean的实例,作用域:基于web的Spring ApplicationContext下有效。
global -session 在一个全局的http session 中 创建一个bean的实例,作用域:基于web的Spring ApplicationContext下有效。
97.spring 自动装配 bean 有哪些方式?
https://www.jb51.net/article/106856.htm
根据属性名称自动配置
根据数据类型自动配置
根据构造方法自动配置
98.spring 事务实现方式有哪些?
1、使用注解:@Transactional()
2、在xml文件中进行配置。
估计写的不是很全
99.说一下 spring 的事务隔离?
读已提交、读未提交、可重复读、串行化
读未提交会出现 脏读、幻读、不可重复读
读未提交:不会出现脏读,其他的会出现
可重复都:只会出现幻读
串行化:都不会出现
100.说一下 spring mvc 运行流程?
用户发送请求---到前端控制器---handleMapping处理器映射器---把请求的处理对象返回给前端控制器----controller层 ---返回对于的modleandview视图----到前端控制器---解析试图----将视图返回给前端控制器----渲染视图--返回给用户
101.spring mvc 有哪些组件?
前端控制器、处理器映射器、视图解析器、拦截器等
102.@RequestMapping 的作用是什么?
用来表示一个http的请求地址,映射到controller的方法。
可作用与类和方法上,
103.@Autowired 的作用是什么?
联想依赖注入的方式:
@Autowitred 是一个注解,可以标注在类、成员变量、构造方法上。可以省去那些构造器注入、等set注入。
按类型进行去匹配