【发布时间】:2020-02-03 08:26:26
【问题描述】:
我有一些用于初始化它的数据结构,我需要向数据库发出请求,然后调用将为数据结构准备数据的对象,然后才对其进行初始化。在启动 spring-mvc 应用程序之前我该怎么做?
我正在尝试使用 @PostConstruct 和 @EventListener(ApplicationReadyEvent.class) 之类的注释,但它们是使用 spring 应用程序启动的,此时数据结构尚未初始化。
有代码示例:
public class DataStructure{
Collection data = new Collection();//some kind of collection
@PostConstruct
public void initDS(){
DataFromDataBase data = ...;
SomeObjectThatPrepareData obj = new SomeObjectThatPrepareData(data);
Collection preparedData = obj.prepareData();
preparedData.forEach(DataStructure::addData);
}
private void addData(Data data){ ... }
...
}
public class ClassThatUseDataStucture{
private static DataStructure readyData;
static{
readyData = new DataStructure();
readyData.initDS();
}
...
}
【问题讨论】:
标签: java spring spring-boot