Spring 按顺序初始化测试数据

Spring initialise test data in order

在我的 Spring 应用程序中,当 Spring 应用程序开始 运行.

时,我使用注释 @PostConstruct 来初始化测试数据

我有两个 classes CInitialiserPInitialiser 由于我如何设置项目的性质,我需要 PInitialiser class 运行 第一。两个实体之间的关系是双向多对多的。

我首先需要 PInitialiser 实体到 运行,因为我需要初始化项目以将它们分配给客户。但看起来 CInitialiser 是 运行ning 第一。有没有办法让实体先Project运行?

这是我的代码:

@PostConstruct
public void init() {
    for (Module m : modules) {
        if (enviromentTest) {
            try {
                m.initData();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

我的每个 classes 都实现了 Module:

public class CInitialiser implements Module

public class PInitialiser implements Module

您可以使用 @Order 注释指定 spring bean 的初始化顺序。 docs 这里有一些例子

What is the use of @Order annotation in Spring?

https://javapapers.com/spring/spring-order-annotation/