文章目录
RestTemplate接口远程访问定时任务jdk:TimerTaskspring:task
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
);
}
}
就是在远程接口上加了scheduled注解。
cron表达式详解