Spring AOP
1、理解的AOP?
将通用的、与业务无关的功能抽象封装为切面类,可以配置在目标方法前、后执行,能够在不修改源码的情况下对程序行为进行扩展。
2、Spring AOP与AspectJ AOP有什么区别?
- Spring AOP属于运行时增强,AspectJ AOP是编译时增强
- Spring AOP基于代理,AspectJ AOP基于字节码操作
- AspectJ 功能更强大,但Spring AOP相对来说更简单
3、AspectJ 定义的通知类型有哪些?
- Before(前置通知):目标方法执行前触发
- After(后置通知):目标方法执行后触发
- AfterRetuning(返回通知):调用完成,返回结果后触发
- AfterThrowing(异常通知):抛出异常后触发
- Around(环绕通知):自定义触发的时机,操作范围最大
4、多个切面的执行顺序如何控制?
- 使用注解@Order(n)注解直接定义切面顺序:n越小优先级越高
- 实现Ordered接口重写getOrder方法:在方法中返回n值
Spring MVC
1、对Spring MVC的理解?
MVC是模型(model)、视图(View)、控制器(Controller)的简写,核心思想是将业务逻辑、数据、显示分离来组织代码。
2、Spring MVC的核心组件有哪些?
- DispatcherServlet:核心的中央处理器,负责接收请求、分发,返回客户端响应。
- HandlerMapping:处理映射器,根据URL查找能处理的Handler,将请求涉及到的拦截器和Handler一起封装。
- HandlerAdapter:处理适配器,根据HandlerMapping找到的Handler,执行对应的Handler。
- Handler:请求处理器,处理实际请求的处理器。
- ViewResolver:视图解析器,根据Handler返回的视图解析并渲染,并传递给DispatchServlet客户端。
3、Spring MVC的工作原理?
整理自JavaGuide