问题1:Spring Bean的生命周期
实例化 Bean 对象 |
问题2:Spring Bean的作用域
Spring Bean有5个作用域,最基础的有两个:
singleton,这是Spring的默认作用域,每个IOC容器创建唯一的一个Bean |
在Web容器中还有三种作用域:
request,针对每个Http请求都会创建单独的Bean实例 |
问题3: Spring AOP
Spring项目中事务、安全、日志等功能都可以使用AOP技术
AOP Proxy底层基于JDK动态代理或者cglib字节码操作技术,运行时动态生成被调用类型的子类,并实例化代理对象
实际的方法会被代理给响应的代理对象
核心概念: |
问题4:Spring中的设计模式:
BeanFactory和ApplicationContext应用了工厂模式 |
问题5:谈谈你对SpringMVC的理解
核心组件
DispatcherServlet:作为前端控制器,整个流程的控制中心,控制其他组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性 |
执行流程
一个请求匹配前端控制器DispatcherServlet的请求映射路径 |
问题6:Spring事务
隔离级别:
DEFAULT:使用数据库默认的事务隔离级别 |
传播机制:
REQUIRED(默认):支持使用当前事务,如果当前事务不存在,创建一个新事务 |
问题7:SpringIOC
1. 简介:
IOC不是不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松藕性、更优良的程序。传统应用程序都是我们从类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试。有了IOC容器后,把创建对象和查找依赖对象的控制权交给了容器,有容器进行注入组合对象,所以对象和对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序整个体系变得很灵活。
2. 优点:
IOC或依赖注入把应用程序的代码降到最低。它使应用容易测试,单元测试不再需要单例和JDNI查找机制。最小的代价和最小的侵入性使松散耦合得以实现。IOC容器支持加载服务时的恶汉式初始化和懒加载
3. 注入方式:
- 构造器依赖注入:构造器依赖注入通过触发一个类的构造器实现的,改类有一系例参数,每个参数代表一个对其他类的依赖
- Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参数static工厂方法实例化bean后,调用bean的setter方法,即实现了基于setter的依赖注入