SSM相关问题与解答

常见框架相关问题,包含一些分布式问题

  1. Spring AOP的实现原理和场景?
  • AspectJAwareAdvisorAutoProxyCreator Spring启动时的beanPostProcessor,bean生命周期中经常可以看到beanPostProcessor在起作用,AOP也是基于IOC来实现的。
  • DefaultAopProxyFactory.createAopProxy(AdvisedSupport config) 创建AOP代理类,这样才可以实现AOP
  • AopNamespaceHandler aop标签解析的handler
  • ConfigBeanDefinitionParser ,aop config标签的解析类。

如果是接口类,则使用JDK动态代理,如果是普通类,通过继承实现

参考:Spring AOP实现原理分析

  1. Spring bean的作用域和生命周期;
    scope: prototype,singleton,request,session
  • 实例化
  • 设置bean的Aware
  • BeanPostProcessor.postProcessBeforeInitialization(Object bean, String beanName)
  • InitializingBean.afterPorpertiesSet
  • BeanPostProcessor.postProcessAfterInitialization(Object bean, String beanName)
  • SmartInitializingSingleton.afterSingletonsInstantiated
  • SmartLifecycle.start
  • bean已经在spring容器的管理下,可以做我们想做的事
  • SmartLifecycle.stop(Runnable callback)
  • DisposableBean.destroy()

参考:Spring Bean生命周期-阶段汇总

  1. Spring Boot比Spring做了哪些改进? Spring 5比Spring4做了哪些改进;
  • 监控功能,actutor
  • starter,提供了很多自动配置
  • 内嵌tomcat
  • 很多Template类
  • 开发快,打包部署一体化,并且内置监控功能

Spring 5.x改进:

  • JDK版本升级
  • Core框架修订,核心容器更新
  • Kotlin函数式编程
  • 响应式编程模型
  • 测试改进
  • 额外库支持
  • 停止维护一些特性

参考:Spring 5.x新特性

  1. 如何自定义一个Spring Boot Starter?
  • @ConfigurationProperties starter的配置属性
  • @EnableConfigurationProperties 启用配置属性
  • spring.factories 可以指定自动配置类
  • spring-configuration-metadata.json 配置属性的补全功能

参考:自定义Spring Boot Starter

  1. Spring IOC是什么?优点是什么?
    Ioc是把对象的控制权较给框架或容器,容器中存储了众多我们需要的对象,然后我们就无需再手动的在代码中创建对象。需要什么对象就直接告诉容器我们需要什么对象,容器会把对象根据一定的方式注入到我们的代码中。注入的过程被称为DI。有时候需要动态的指定我们需要什么对象,这个时候要让容器在众多对象中去寻找,容器寻找需要对象的过程,称为DL(Dependency Lookup, 依赖查找)。

IOC容器给我们提供的最大便利之处就是更容易实现可插拔,可替换的组件。这也是接口驱动开发所带来的优势,根据接口可以提供更多灵活的子类实现,增强代码的健壮性和稳定性。

参考:Ioc容器概述

  1. SpringMVC、动态代理、反射、AOP原理、事务隔离级别;
    知识点很多,参考我创建的专题
    探索Spring

最后

持续更新

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容