Spring按顺序初始化测试数据

时间:2018-01-11 12:11:29

标签: spring spring-mvc spring-boot spring-annotations

在我的Spring应用程序中,我使用注释@PostConstruct在Spring应用程序开始运行时初始化测试数据。

我有两个类CInitialiserPInitialiser,因为我设置项目的性质我需要首先运行PInitialiser类。两个实体之间的关系是多对多的双向。

我需要首先运行PInitialiser实体,因为我需要初始化项目以将它们分配给客户。但看起来CInitialiser首先运行。无论如何都要让实体Project先运行?

这是我的代码:

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

我的每个类都实现了Module

public class CInitialiser implements Module

public class PInitialiser implements Module

1 个答案:

答案 0 :(得分:0)

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

What is the use of @Order annotation in Spring?

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