1、SpringBoot自动装配原理

Sping Boot自动装配原理

2、Bean的生命周期

bean的生命周期

3、SpringBoot如何解决循环依赖

Spring如何解决循环依赖问题

4、SpringBoot启动流程

Spring Boot启动流程

5、SpringMVC的执行流程

  1. 用户发送请求到 DispatcherServlet(前端控制器 )。
  2. DispatcherServlet 接收到请求后,将请求信息交给 HandlerMapping(处理器映射器) 。
  3. HandlerMapping 根据用户的 url 请求查找匹配该 url 的 Handler 处理器。
  4. DispatcherServlet 再请求 HandlerAdpter(处理器适配器)调用相关的 Handler,并返回ModelAndView 给 DispatcherServlet。
  5. DispatcherServlet 将 ModelAndView 交给 ViewResolver(视图解析器)解析返回具体 View。
  6. DispatcherServlet 对 View 进行渲染视图。
  7. 将页面返回给用户。

    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接口的策略类。