我是 Spring 靴的新手。我已经在json中成功输出了一些请求映射。
localhost:8080/gJson

 {
    ad: "Windows 10",
    mimari: "amd64",
    versiyon: "10.0",
    diskSize: 918,
    freediskSize: 614,
    cores: 8,
    usablediskSize: 614
    }

还有我的控制器在这里
@EnableAutoConfiguration
@Controller
public class GreetingController {

     @RequestMapping(value = "/gJson", produces=MediaType.APPLICATION_JSON_VALUE)
     public @ResponseBody  MyPojo gJson(){
         ...
     }
}

现在,我需要...例如,当我转到此链接> localhost:8080/GetInfo时,从localhost:8080/gJson获取json,但每隔“X”秒。

感谢您的帮助。

最佳答案

/ GetInfo如何提供?它只是一个标准的HTML页面吗?如果是这样,您可以编写一个具有 setInterval() 的Javascript元素,以将 XMLHttpRequest 设置为/gJson端点。根据要使用哪些库来实现浏览器与服务器之间的通信,还有许多其他方法可以执行此操作。

*更新*
示例项目:https://github.com/ShawnTuatara/stackoverflow-38890600

允许刷新的主要方面是src/main/resources/static/GetInfo.html上的HTML页面

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>GetInfo</title>
<script
    src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>

</body>
<script type="text/javascript">
    $(function() {
        window.setInterval(function() {
            $.ajax({
                url : "/gJson"
            }).done(function(data, status, jqXHR) {
                $("body").text(jqXHR.responseText);
            });
        }, 10000);
    });
</script>
</html>

控制器很简单,如问题所述。
@EnableAutoConfiguration
@RestController
public class GreetingController {
    @GetMapping(value = "/gJson", produces = MediaType.APPLICATION_JSON_VALUE)
    public MyPojo gJson() {
        return new MyPojo("Windows 10", System.currentTimeMillis());
    }
}

最后,MyPojo只是一个简单的两个字段类。
public class MyPojo {
    private String ad;
    private long timestamp;

    public MyPojo(String ad, long timestamp) {
        this.ad = ad;
        this.timestamp = timestamp;
    }

    public String getAd() {
        return ad;
    }

    public void setAd(String ad) {
        this.ad = ad;
    }

    public long getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(long timestamp) {
        this.timestamp = timestamp;
    }
}

我添加了时间戳,以便您可以在网页上看到每10秒刷新一次的时间。

07-28 13:02