欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

SpringBoot中多个PostConstruct注解执行顺序控制

2025年08月07日 Java
项目场景:多个类中使用@postconstruct加载先后顺序问题描述有时候class a中@postconstruct注解的方法中的代码执行,需要等待class b中@postconstruct 注

项目场景:

多个类中使用@postconstruct加载先后顺序

问题描述

有时候class a中@postconstruct注解的方法中的代码执行,需要等待class b中@postconstruct 注解方法中的代码执行完后,拿到结果,才能执行,也就是中a中某些代码的执行需要依赖b中代码执后的结果,此时就需要b先执行完,再执行a,

解决方案:

方式一:可以在a中先注入b,那么就会先加载b

@service
@dependson("b")
public class a{

    @postconstruct
    public void init() {
        system.out.println("a bean init method called");
    }

}
@service
public class b{

    @postconstruct
    public void init() {
        system.out.println("b bean init method called");
    }

}

方式二:使用@order注解

@service
@order(2) // 指定执行顺序为2
public class a{

    @postconstruct
    public void init() {
        system.out.println("a bean init method called");
    }

}
@service
@order(1) // 指定执行顺序为1
public class b{

    @postconstruct
    public void init() {
        system.out.println("b bean init method called");
    }

}

@order 值较小的 bean先执行 

到此这篇关于springboot中多个postconstruct注解执行顺序控制的文章就介绍到这了,更多相关springboot postconstruct 执行顺序内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!