返回

时间:2017-05-12 02:59:05

标签: java spring spring-boot hashmap

我有一个休息控制器来使用下面的网络服务:

@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值。为什么?感谢任何帮助。

0 个答案:

没有答案