1、SpringBoot自动装配原理
2、Bean的生命周期
3、SpringBoot如何解决循环依赖
4、SpringBoot启动流程
5、SpringMVC的执行流程
- 用户发送请求到 DispatcherServlet(前端控制器 )。
- DispatcherServlet 接收到请求后,将请求信息交给 HandlerMapping(处理器映射器) 。
- HandlerMapping 根据用户的 url 请求查找匹配该 url 的 Handler 处理器。
- DispatcherServlet 再请求 HandlerAdpter(处理器适配器)调用相关的 Handler,并返回ModelAndView 给 DispatcherServlet。
- DispatcherServlet 将 ModelAndView 交给 ViewResolver(视图解析器)解析返回具体 View。
- DispatcherServlet 对 View 进行渲染视图。
- 将页面返回给用户。
6、Spring中都用到了哪些设计模式?
- 工厂设计模式:比如通过 BeanFactory 和 ApplicationContext 来生产 Bean 对象。
- 代理设计模式: AOP 的实现方式就是通过代理来实现,Spring主要是使用 JDK 动态代理和 CGLIB 代理。
- 单例设计模式: Spring 中的 Bean 默认都是单例的。
- 模板方法模式:利用模板模式,Spring能让用户定制Bean的创建过程。Spring 中 jdbcTemplate 等以 Template 结尾的对数据库操作的类,都会使用到模板方法设计模式,一些通用的功能。
- 观察者模式:Spring事件驱动模型使用的是观察者模式,Spring中观察者模式常用的地方是listener的实现。
- 适配器模式:SpringMVC中的适配器HandlerAdatper。Spring AOP 的增强或通知(Advice)使用到了适配器模式。
- 装饰器模式:Spring中用到的包装器模式在类名上有两种表现:一种是类名中含有Wrapper,另一种是类名中含有Decorator。
- 策略模式:策略模式的典型应用场景,一般是通过环境变量、状态值、计算结果等动态地决定使用哪个策略。Spring会在运行时动态地选择不同的动态代理实现方式。这个应用场景实际上就是策略模式的典型应用场景。我们只需要定义一个策略接口,让不同的策略类都实现这一个策略接口。对应到Spring源码,AopProxy是策略接口,JdkDynamicAopProxy、CglibAopProxy是两个实现了AopProxy接口的策略类。