我有一个休息控制器来使用下面的网络服务:
@RestController
public class Test {
public Map<Integer, Integer> map = new HashMap<Integer, Integer>();
@Autowired
@Qualifier("restTemplatetest")
private RestTemplate restTemplatetest;
@Bean
public RestTemplate restTemplatetest() {
RestTemplateBuilder buildertest = new RestTemplateBuilder();
RestTemplate buildtest = buildertest.build();
return buildtest;
}
@Scheduled(fixedRate = 30000)
public void receiveTestData() {
map.clear();
map = restTemplatetest.getForObject("url", Map.class);
// I get the testdata
System.out.println("size of hashmap after requesting is:" + map.size());// this print s the test data size as 120
}
public Map<Integer, Integer> supplyTestData() {
System.out.println("size of hashmap after requesting is:" + map.size());// this print s the test data size as 0
return map;
}
}
所以我想在另一个控制器中使用这个测试数据哈希映射
所以我做的是
@RestController
public class HomeController {
@Autowired
Test test;
Map<Integer, Integer> testMap = new HashMap<Integer, Integer>();
@Scheduled(fixedRate = 40000, initialDelay = 40000)
public void fetchTestDataHere() {
testMap = test.supplyTestData();
}
}
但是这会返回null。 所以我的问题是我收到Test Class中的数据并且它不是null。但是当我从Test Class返回哈希映射时它返回一个null值。为什么?感谢任何帮助。