gpt4 book ai didi

java - 如何在 Controller 中仅调用一次方法

转载 作者:行者123 更新时间:2023-12-02 13:23:53 25 4
gpt4 key购买 nike

我有一个 REST API,我想调用一个从 csv 文件创建 TreeMap 的方法,并且我想将 TreeMap 用于其余的每个 API 调用。所以我只想调用该方法来设置 TreeMap并希望使用 TreeMap 进行其余的 API 调用。

我创建TreeMap的方法是

public void createTreeMap(){

CSVReader reader = new CSVReader(new FileReader("C:\\Users\\result.csv"), ',' , '"' , 1);
TreeMap <Integer,ArrayList<Long>> result=new TreeMap <Integer,ArrayList<Long>>();
//Read CSV line by line and use the string array as you want
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
if (nextLine != null) {
//Verifying the read data here
ArrayList<Long> result_01 = new ArrayList<Long>();

for(int k=0;k<nextLine[1].replace("[", "").replace("]", "").replace(" ", "").split(",").length;k++){
result_01.add(Long.parseLong(nextLine[1].replace("[", "").replace("]", "").replace(" ", "").split(",")[k]));
}


result.put(Integer.parseInt(nextLine[0]), result_01);



}
}

}

下面是 Rest api Controller

@RestController
public class HomeController {



@RequestMapping(value="/api/sid",produces={MediaType.APPLICATION_JSON_VALUE},method=RequestMethod.GET)
public ResponseEntity<Map<String, List<Model>>> getid(@RequestParam("sid") int sid) {




Map<String, List<Model>> Map = new HashMap<String, Object>();
List<Model> model=new List<Model>();
model=get_model();
Map.put("hi",model)

return new ResponseEntity<Map<String, List<Model>>>(Map,HttpStatus.OK);

}


@ResponseBody

public List<Model> get_model(){
List list =new List<Model>();
//here I have to use the treemap

return list;



}

}

每次调用 api 时,我都可以创建树形图。但我只需要创建一次,然后在响应正文 get_model 方法中访问它。如有任何帮助,我们将不胜感激。

最佳答案

使用单例bean,即创建另一个bean来从csv文件创建TreeMap,并在bean的成员变量中创建TreeMap。

@Bean
public class RefData{
public TreeMap<Object> treeMap;

public TreeMap<Object> getData(){
if(this.treeMap == null){
//read csv file & prepare TreeMap & store it in this.treeMap
}
return this.treeMap;
}
}

关于java - 如何在 Controller 中仅调用一次方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43462555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com