Spring数据休息应用程序后端通知前端

时间:2017-09-21 02:58:56

标签: java spring rest spring-mvc spring-data

您好我希望我的后端(spring-data-rest)应用程序生成一些示例数据并通知前端。但是,存储库事件处理程序只是REST,所以我尝试编写一个restTemplate但是失败了。

@Scheduled(fixedRate = 5000)
public void addCounter() throws Exception {
    String url = String.format("http://localhost:%d/%s/counters", 8080, api);
    Counter counterExpected = new Counter('xxx', random.nextInt(100));
    ObjectMapper mapper = new ObjectMapper();
    String jsonString = mapper.writeValueAsString(counterExpected);

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    HttpEntity<String> entity = new HttpEntity<String>(jsonString, headers);

    restTemplate.postForObject(url, entity, String.class);
}

错误:

Description:

Field restTemplate in ScheduledTask required a bean of type 'org.springframework.boot.test.web.client.TestRestTemplate' that could not be found.


Action:

Consider defining a bean of type 'org.springframework.boot.test.web.client.TestRestTemplate' in your configuration.

此错误有意义,因为我在运行时应用程序中使用TestTestTemplate而不是测试范围。

我的问题是: 是否可以将addCounter()方法更改为更简单的方法,如:

counterRepository.save(newCounter);
/* Raise AfterCreate event */

如果是,那怎么样?

如果没有,那么有没有其他方法来做HTTP帖子而不是使用restTemplate?

1 个答案:

答案 0 :(得分:0)

我的坏。我应该使用

import org.springframework.web.client.RestTemplate;

而不是

import org.springframework.boot.test.web.client.TestRestTemplate;