java - 从静态类接收数据

标签 java spring rest api http

我有 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/

相关文章:

spring - 我将如何为每个请求提供数千个文件

java - Spring JMS 监听器未连接到 ActiveMQ

rest - HTTP和Rest有什么关系?

Mac 上 SQLite 的 java.lang.UnsatisfiedLinkError

java - Groovy - 对象重用。

java - 如何使用java套接字编程知道网络何时关闭

java - 无法解析的日期异常 SimpleDateFormat

Spring 启动: Handle configuration in multitenant application

使用 Rest-Assured 进行 Rest Api 测试

c# - 使用 Rest 客户端并获取状态代码 406 Not Acceptable