RestTemplate接口远程访问
- 在java代码里访问restful服务,可以使用apache的HttpClient。
- 同时在spring-data框架中提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接,只需要传入url及返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更优雅的调用RESTful服务的方式。
public class RestTemplateTest {
public static void main(String[] args) {
RestTemplate t = new RestTemplate();
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("M/d");
String today = format.format(date);
String object = t.getForObject("http://v.juhe.cn/todayOnhistory/queryEvent.php?key=聚合数据的key&date="+today, String.class);
JSONObject jsonObject = JSON.parseObject(object);
Object result = jsonObject.get("result");
System.out.println(result);
}
}
String str = rt.getForObject("http://localhost:8080/user/{1}/{2}", String.class,"111",,"222");
定时任务
- 创建任务类
- 启动任务,设置任务的第一次执行时间,设置执行间隔
jdk:TimerTask
public class GetDataTask extends TimerTask {
@Override
public void run() {
System.out.println("获取接口数据");
}
}
public class TimerTaskTest {
public static void main(String[] args) throws ParseException {
Timer timer = new Timer();
timer.schedule(new GetDataTask(),5000,5000);
String time = "2020-08-10 18:38:20";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = format.parse(time);
timer.schedule(new GetDataTask(),date);
}
}
spring:task
- 用在程序启动之前,已经定好了一些任务的执行策略。
- spring中配置
<task:annotation-driven></task:annotation-driven>
@Component
public class SpringTaskTest {
@Scheduled(cron = "0 0 20 ? * 2-6")
public void dateData(){
RestTemplate restTemplate = new RestTemplate();
String template = restTemplate.getForObject("http://v.juhe.cn/todayOnhistory/queryEvent.php?key=key&date=8/10", String.class);
JSONObject parseObject = JSON.parseObject(template);
Object result = parseObject.get("result");
System.out.println(result);
}
}
cron表达式详解