gpt4 book ai didi

java - 从静态类接收数据

转载 作者:行者123 更新时间:2023-12-02 11:33:14 24 4
gpt4 key购买 nike

我有 utils 类,它以静态方法从外部 API 获取数据:

@Component
public class Util {


private Util() {

}


public static List<Movie> getMovies(){
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
String resourceURL = "< a loooong url>"
HttpEntity<String> entity = new HttpEntity<String>(headers);
ResponseEntity<Results> response = restTemplate.exchange(resourceURL, HttpMethod.GET, entity, Results.class);
Results results = response.getBody();
List<Movie> movies = results.getResults();
return movies;
}
}

我知道数据已从服务器正确获取,但我不知道为什么无法将其传输到我的其余 Controller :

@RestController
public class MovieController {



@RequestMapping(value ="/movies", method = RequestMethod.GET)
public List<Movie> getMovies(){
return Util.getMovies();
}

}

它返回给我 404 无可用消息..

大家有什么想法吗? ;)

问候

最佳答案

是否有必须将该方法设为静态的原因?将其切换为非静态方法,然后您可以在 Controller 中 Autowiring 它。

@Component
public class Util {

public List<Movie> getMovies(){
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
String resourceURL = "< a loooong url>"
HttpEntity<String> entity = new HttpEntity<String>(headers);
ResponseEntity<Results> response = restTemplate.exchange(resourceURL, HttpMethod.GET, entity, Results.class);
Results results = response.getBody();
List<Movie> movies = results.getResults();
return movies;
}
}

由于它是一个组件,您现在可以 Autowiring 它,并且还必须将 @ResponseBody 注释添加到 Controller 中。

@RestController
public class MovieController {

@Autowired
private Util util;

@RequestMapping(value ="/movies", method = RequestMethod.GET)
public @ResponseBody List<Movie> getMovies(){
return util.getMovies();
}
}

关于java - 从静态类接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49132450/

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