SpringBean实例化之前做点事情

SpringBean 实例化

需求,实现一个视频解码器,可以实现各种视频格式的解码

第一种方法:先去实现各个解码器,然后 if.else 判断使用哪种解码器

1673174154848-0f2de361-e08b-4072-a40c-fd40b157cd79.png

1673174177392-133f52e3-16ee-4ec1-92d6-4f47584a89b1.png

1673174203385-ce8f3841-766a-43b0-8558-0d8ea47ade75.png

1673174223495-ad533477-2cae-4639-853a-4c231754610d.png

使用 BeanPostProcessor 优化

第二种方法:使用 BeanPostProcessor 构造解码器索引,再从索引中拿到匹配的

1673174274200-023da56b-1915-4ca0-9f44-625b0b42381f.png

1673174360460-07555967-5db0-4af3-8027-c8dffc6b8370.png

1673174482757-8c285350-87d4-40aa-b591-91d512894c04.png

1673174446116-7eedff99-17d1-4875-b1b6-1bcd88cb65eb.png

1673174603343-f354f035-dfa0-4b83-beb4-a0013e40caee.png

测试运行:

1673174645569-b05d1448-dd14-4f88-8754-c56e6e4d4023.png

BeanFactoryPostProcessor

  • BeanFactoryPostProcessor 是在 Spring 容器加载 Bean 定义XML 文件之后, Bean 实例化之前执行
  • BeanFactoryPostProcessor 的执行顺序在 BeanPostProcessor 之前
  • BeanFactoryPostProcessor 与 BeanPostProcessor 都是服务于 Bean 的生命周期中的,只是使用场景和作用略有不同

第三方类是单例的,但是想变为原型的,怎么操作?

1673174891801-36fe16b8-22a7-4060-900c-c31576b4eb29.png

1673174860578-61a117fa-3f96-4647-933c-fc81d36051e9.png

posted on 2025-10-14 23:54  chuchengzhi  阅读(5)  评论(0)    收藏  举报

导航

杭州技术博主,专注分享云计算领域实战经验、技术教程与行业洞察, 打造聚焦云计算技术的垂直博客,助力开发者快速掌握云服务核心能力。

褚成志 云计算 技术博客