1. Spring有几种配置方式?
- 基于xml
- 基于注解
- 基于Java
2. Spring中的bean有几种scope?
- singleton:单例,每一个bean只创建一个对象实例
- prototype:原型,每次对该bean请求调用都会生成各自的实例
- request:请求,针对每次HTTP请求都会生成一个新的bean。表示在一次HTTP请求内有效
- session:在一个HTTP session中,一个bean定义对应一个bean实例
- golbal session:在一个全局HTTP session中,一个bean定义对应一个bean实例
3. 什么是AOP(面向切面编程)?
- AOP(Aspect Oriented Programming),面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术
4. 切面有几种类型的通知?分别是什么?
- 前置通知(Before):目标方法被调用之前调用通知功能
- 后置通知(After):目标方法完成之后调用通知功能
- 返回通知(After-returning):目标方法成功执行之后调用通知
- 异常通知(After-throwing):目标方法抛出异常后调用通知
- 环绕通知(Around):在被通知的方法调用之前和调用之后执行自定义的行为
5. 什么是连接点(Join point)?
- 连接点是在应用执行过程中能够插入切面的一个点。这个点可以是调用方法时、抛出异常时、甚至修改一个字段时
6. 什么是切点(Pointcut)?
- 切点的定义会匹配通知所要织入的一个或多个连接点。我们通常使用明确的类和方法名称,或是利用正则表达式定义所匹配的类和方法名称来指定这些切点。有些AOP框架允许我们创建动态的切点,可以根据运行时的决策(比如方法的参数值)来决定是否应用通知
7. 什么是切面(Aspect)?
- 切面是通知和切点的结合。通知和切点共同定义了切面的全部内容
8. 织入(Weaving)?
- 织入是把切面应用到目标对象并创建新的代理对象的过程。切面在指定的连接点被织入到目标对象中
9. 引入(Introduction)?
- 引入允许我们向现有的类添加新方法或属性
10. 在目标对象的生命周期里有多个点可以进行织入?
- 编译器:切面在目标类编译时被织入。AspectJ的织入编译器就是以这种方式织入切面的
- 类加载期:切面在目标类加载到JVM时被织入。它可以在目标类被引入应用之前增强该目标类的字节码。AspectJ5的加载时植入(load-time weaving, LTW)就支持以这种方式织入切面
- 运行期:切面在应用运行的某个时刻被织入。一般情况下,在织入切面时,AOP容器会为目标对象动态地创建一个代理对象。Spring AOP就是以这种方式织入切面的
上一篇:Java面试手册V2.0+突击V3.0知识点整理(二十九) 附封面图片😍
下一篇:Java面试手册V2.0+突击V3.0知识点整理(三十一) 附封面图片😍
如果觉得封面图片还行,请顺手点个赞😍