✏️
blog
  • README
  • 2023 11
    • expect使用
  • 2023 10
    • 通过Appium给iOS应用自动化执行脚本
  • 2023 06
    • 三种ThreadLocal详解
    • 常见限流算法总结
    • 分布式ID生成算法
  • 2023 05
    • 线上机器CLOSE_WAIT连接数异常排查
    • 多数据源引发transactional事务回滚失效
  • 2023 04
    • MySQL中BufferPool
  • 2022 12
    • Linux IO
    • Netty总结
  • 2022 04
    • Thrift
  • 2022 03
    • JVM命令总结
    • 频繁FullGC定位思路
    • Redis总结
    • Spring常见问题总结
    • Kafka总结
  • 2022 02
    • Dubbo柔性服务天池大赛总结
  • 2021 12
    • 泛型中的extends和super
    • 手写一个Spring Boot Starter
  • 2021 11
    • 常用消息队列总结
  • 2021 10
    • swagger2快速使用
    • SpringBoot接口cors跨域访问
  • 2021 08
    • 常用shell命令总结
  • 2021 05
    • 线程cpu飙升排查
    • zookeeper install
  • 2021 04
    • Java虚拟机
    • [Spring Boot](2021-04/2021-04-04-Spring Boot.md)
    • [Spring MVC](2021-04/2021-04-04-Spring MVC.md)
    • 分布式ID
    • 消息队列
    • [Spring AOP](2021-04/2021-04-05-Spring AOP.md)
    • 布隆过滤器
    • Scala内核Spark阻塞排查
  • 2020 12
    • 使用Python优雅实现tail命令
  • 2020 11
    • Spark基础架构
    • 一文搞定Git
    • Spark线上问题引发的思考
  • 2020 04
    • 使用GitBook
  • 2019 05
    • SELinux、Netfilter、iptables、firewall和ufw五者关系
    • 安装npm和nodejs
    • 访问不到云服务器中的项目
  • 2019 04
    • 二叉树中节点与度数
    • 实现会话跟踪的技术有哪些
    • 计算机操作系统-死锁
    • Semaphore Count Down Latch Cyclic Barrier
    • Java内存模型
    • 双重检查锁定
    • synchronized实现底层
    • Lock接口
    • HTTP与HTTPS的区别
    • Java中线程池
    • Java中的阻塞队列
    • 排序算法
  • 2019 03
    • MySQL中索引
    • MySQL存储引擎
    • MySQL锁机制
    • n的阶乘结果后面0的个数
由 GitBook 提供支持
在本页

这有帮助吗?

  1. 2022 03

Spring常见问题总结

上一页Redis总结下一页Kafka总结

最后更新于1年前

这有帮助吗?

  1. Spring如何解决循环依赖问题 通过多层缓存提前暴露来解决

  2. FactoryBean和BeanFactory区别

    • BeanFactory实际是一个容器,ApplicationContext等都实现了BeanFactory接口,定义了getBean等方法

    • FactoryBean实际是一个Bean,可以在容器通过getBean获取,不过获取的是这个bean调用getObject方法后得到的对象,相当于在bean创建的时候加了更多可配置操作的空间,如果需要获取真实的Bean, 需要在name前面添加& https://juejin.cn/post/6844903967600836621

  3. BeanFactory和ApplicationContext区别 https://www.cnblogs.com/xiaoxi/p/5846416.html

  4. Spring Bean的生命周期,是如何被管理的?

  1. Spring Bean的加载过程是怎样的?

  2. SpringBoot启动过程

6 零拷贝 https://juejin.cn/post/6995519558475841550

https://zhuanlan.zhihu.com/p/493343355

  • BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor差别

在Spring中,常被用于扩展的接口有以下几个:

BeanPostProcessor:Bean后置处理器接口,它定义了在Spring容器实例化bean之后、初始化bean之前和之后执行的回调方法。通过实现BeanPostProcessor接口,我们可以在bean实例化和初始化的过程中对bean进行自定义的处理,例如修改bean的属性、添加代理等。

BeanFactoryPostProcessor:Bean工厂后置处理器接口,它定义了在Spring容器实例化bean之后、初始化bean之前执行的回调方法。通过实现BeanFactoryPostProcessor接口,我们可以在bean实例化之前对bean的定义进行修改,例如添加新的属性、修改属性值等。

ApplicationContextAware:应用上下文感知接口,它定义了一个setApplicationContext方法,用于在bean实例化之后自动注入应用上下文对象。通过实现ApplicationContextAware接口,我们可以在bean中获取应用上下文对象,从而实现一些高级的功能,例如获取其他bean的引用、获取环境变量等。

InitializingBean:初始化接口,它定义了一个afterPropertiesSet方法,用于在bean属性设置完成之后执行一些初始化操作。通过实现InitializingBean接口,我们可以在bean初始化的过程中执行一些自定义的初始化操作,例如检查bean的状态、初始化一些资源等。

DisposableBean:销毁接口,它定义了一个destroy方法,用于在bean销毁之前执行一些清理操作。通过实现DisposableBean接口,我们可以在bean销毁的过程中执行一些自定义的清理操作,例如释放一些资源、关闭一些连接等。 FactoryBean 通过实现这些接口,我们可以在Spring容器中对bean进行更加细粒度的控制和扩展,实现一些高级的功能和自定义的处理逻辑

Spring Bean的生命周期