1、Spring相关
大约 1 分钟
Spring是一个开源的、轻量的Java开发框架,意在提高Java开发人员的开发效率。Spring的两大特点就是控制反转和面向切片
Spring的模块包括Core、Data Access、Web、Test、AOP等等。
1.Spring/SpringMVC/SpringBoot的区别
2.IoC/DI/IoC实现机制?
3.AOP
Spring中AOP是一个重要的概念。我们知道,传统的开发方式包括面向过程编程和面向对象编程。比如,我们想要实现一个动物类,让它有吃和跑的能力,这是一个纵向的过程。但是,如果说我们想要给每个方法加上一些日志功能等等,传统的纵向编程显得比较复杂,需要在每个方法中都去写相同的日志功能。所以,这种功能更加适合横向开发,也就是更加适合用AOP操作。
Spring中的AOP是通过动态代理的方式实现的。有关AOP的一些概念如下:
- 切面:如果说类是对事物功能的抽象,那么切面就是对不同事物中相同功能的抽象,比如说日志
- 连接点:作为拦截的条件,在Spring中一般来说是一个方法
- 切点:对连接点进行定位
- 通知:拦截成功后的操作
- 织入:将操作添加到连接点的过程,可以分为三种:
- 编译时织入
- 类加载时织入
- 运行时织入
3.1 AOP的环绕方式
- 前置通知
- 后置通知
- 返回通知
- 异常通知
- 环绕通知:运行前后都执行
3.2 两种动态代理
4.Spring用到了哪些设计模式
- 工厂模式
- 单例模式
- 代理模式
- 适配器模式
- 观察者模式
- 模板模式