springboot框架中想要将redis中缓存的数据发送到接口中,但是不知道为什么报错了.

springboot框架中想要将redis中缓存的数据发送到接口中,但是不知道为什么报错了.

用代码块功能插入代码,请勿粘贴截图

最开始的代码:

img


此时没有报错,将一些数据put至map中前端也能成功接受.
然后增加了关于redis的代码后报错.

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import redis.clients.jedis.Jedis;

import java.util.*;


@RestController
public class TestController {

    @GetMapping("/getCode")
    private Map<String,String> code(){

        HashMap<String,String> map = new HashMap<>();
//        链接redis
        Jedis jedis = new Jedis("", 6379);
        jedis.auth("");
        jedis.select(1);
        String response = jedis.ping();
        System.out.println(response); // PONG

        long  start=System.currentTimeMillis();
        System.out.println(start);
        while(true){
            long thisTime=System.currentTimeMillis();
//            System.out.println(thisTime);
            if (thisTime-start == 5000){
                System.out.println(thisTime);
                System.out.println("过去了2秒!");
//                开始执行清库操作
                Set<String> keys = jedis.keys("*");
                System.out.println(keys);

                for (String key: keys){
                    String value= jedis.get(key);
//                  转换类型时可能出现非int类型
                    try {
                        int a = Integer.parseInt(value);
                        String str=String.valueOf(a);
                        map.put(key,str);

                    } catch (NumberFormatException e) {
                        e.printStackTrace();
                    }
//                   System.out.print(Integer.parseInt(value));
                }
                jedis.flushDB();
                System.out.println(map);
                System.out.println("操作结束!");
                start=System.currentTimeMillis();
            }else{
            }
        }


        return map;
    }
}


编译器提示:

img

你的while是死循环,要写了结束条件下面的map才能返回的

img


这里不能写死循环,死循环就不能后面的代码就没法执行了,return也就变成了不可达代码,肯定会报错的。