前面一段时间,开发的应用系统中,写了多个PostConstruct方法,其中有一个是执行脚本,而其它的PostConstruct方法刚刚又会去读数据库,导致启动失败,在网上搜索了半天,也没有找到它们之前的执行顺序,最后发现Service之间可以配置依赖关系,而PostConstruct是在Service初始化之后,随即调用,因此,控制Service初始化顺序就可以控制PostConstruct执行顺序。

如:

@Service
@DependsOn("dbScriptUpdate")
public class AaIDSchedule {

    @PostConstruct
    public void init() {

       }

}

@Service
public class DbScriptUpdate {

    @PostConstruct
    public void updateDb() {

    }

}

spring boot会保证DbScriptUpdate 先初始化,并且它的updateDb先执行。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐