扫码阅读
手机扫码阅读
Spring 中如何控制 Bean 的加载顺序?
49 2024-11-02
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
江南一点雨
扫码关注公众号
摘要
一、@Order 注解和 Ordered 接口
用途:@Order 注解和 Ordered 接口在 Spring 中用于控制组件的执行顺序,但不影响 Bean 的初始化顺序。可用于定义执行顺序和集合排序。
使用场景:主要用于控制拦截器、Spring Security Filters、Event Listeners 和 Bean 集合注入的顺序,但并不控制 Bean 的加载顺序,这是由 Spring IoC 容器的依赖关系图确定的。
二、如何设置 Bean 的加载顺序?
@DependsOn:用于指示在初始化一个 Bean 前必须先初始化其依赖的其他 Bean,解决 Bean 间依赖关系。
BeanFactoryPostProcessor:在 Bean 初始化之前执行,可以在其实现方法中手动初始化 Bean。
三、小结
虽然 @Order 注解和 Ordered 接口可以确定同类型 Bean 的执行顺序,但不影响加载顺序。Bean 的加载顺序可以通过 @DependsOn 注解和在 BeanFactoryPostProcessor 中手动调用 getBean 方法来调整。
欲彻底掌握 Spring 源码,可以参考松哥的 Spring 源码视频教程,覆盖 Spring 的基础和进阶用法,共 204 集约 40 个小时。
目前教程以 5 折优惠售卖,有兴趣的可以扫码加微信,备注 spring,以 199 元价格购买。
想要了解更多内容?
文章来源:
江南一点雨
扫码关注公众号
江南一点雨的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线