扫码阅读
手机扫码阅读

Spring 中如何控制 Bean 的加载顺序?

26 2024-11-02

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:Spring 中如何控制 Bean 的加载顺序?
文章来源:
江南一点雨
扫码关注公众号

摘要

一、@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 元价格购买。

想要了解更多内容?

查看原文:Spring 中如何控制 Bean 的加载顺序?
文章来源:
江南一点雨
扫码关注公众号