Java 面试问题系列三(Spring)

1、Spring 主要思想是什么,回答 IOC 和AOP,怎么自己实现 AOP ?

IOC 的好处

使用基于反射的动态代理

2、SpringAOP 用的哪一种代理

JDK 动态代理,这种是一般意义上的动态代理;用一个代理类来间接调用目标类的方法。目标类如果实现了接口那就用这种方式代理。

cglib 动态代理。通过框架转换字节码生成目标类的子类,并覆盖其中的方法实现增强,因为采用的是继承,所以不能对 final 类进行代理。目标类没有实现任何接口,就使用这种方法

3、spring bean 初始化过程

读取 XML 资源,并解析,最终注册到 Bean Factory 中

4、spring bean 对象的生命周期

当一个 bean 被实例化时,它需要执行一些初始化(init-method)使它转换成可用状态。同样,当 bean 不再需要,并且从容器中移除时,需要做一些清除工作(destroy-method)

5、讲讲 Spring 中 ApplicationContext 初始化过程。

ApplicationContext 的初始化重点是在refresh方法,其中最关键的几步是:

创建 bean Factory

初始化消息源

初始化应用事件传播器

初始化单例 bean

6、SpringMVC 处理请求的流程

Java 面试问题系列三(Spring)_第1张图片

收到用户请求

dispatcher Servlet 将请求转发到相应的 Controller

通过 View Resolver 进行视图解析

返回给用户

7、SpringMVC 的设计模式

8、Spring 的 annotation 如何实现

9、Spring拦截器怎么使用,Controller是单例吗

Controller 是单例的,跟 Servlet 一样。

基于 XML 配置文件

基于注解

基于 Spring 定义的 MethodInterceptor 接口


关注重庆java圈

Java 面试问题系列三(Spring)_第2张图片

你可能感兴趣的:(Java 面试问题系列三(Spring))