springBoot中调用第三方接口获取数据保存到本系统数据库

首先注入远程调用的工具类
@Autowired
private RestTemplate restTemplate;

然后通过该工具类调用第三方接口

  /**
     * 每天22点定时获取修改数据
     */
    @Scheduled(cron = " 0 0 22 * * ? ")
    public void getPeopleData() {
        //调用别人的系统返回数据
        JSONObject jSONObject =  restTemplate.getForObject("url?startdate="+ DateUtils.getDate()+"&endate="+DateUtils.getDate()+"", JSONObject.class);
        JSONArray jsonArray = jSONObject.getJSONArray("data");
        List<FloatPeople> list = JSONObject.parseArray(jsonArray.toJSONString(), FloatPeople.class);
        log.info("定时调用接口成功--------数据为 :" + list );
        //批量保存到数据库
        repository.saveAll(list);
    }



  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,这是一个比较常见的场景,我可以给您提供一个大致的实现思路。具体实现细节需要结合实际情况进行调整。 1. 首先需要在SpringBoot项目引入RestTemplate和MyBatis-Plus的依赖。 2. 在代码创建RestTemplate实例,并通过该实例来发送HTTP请求并获取响应。 3. 在发送HTTP请求之前,需要先进行限流。可以使用Semaphore或者RateLimiter来实现。例如,使用Semaphore可以这样实现: ```java Semaphore semaphore = new Semaphore(3); if(semaphore.tryAcquire()) { // 发送HTTP请求 // ... semaphore.release(); } else { // 返回错误信息 // ... } ``` 这的Semaphore初始化为3,表示每秒最多只能发送3个请求。tryAcquire()方法会尝试获取一个信号量,如果获取成功则发送HTTP请求,否则返回错误信息。 4. 在接收到HTTP响应之后,将响应报文保存到MySQL数据库。可以使用MyBatis-Plus提供的ORM框架来实现。例如,可以定义一个实体类来映射数据库的表,并使用MyBatis-Plus提供的BaseMapper接口来进行增删改查操作。 ```java @Mapper public interface ResponseMapper extends BaseMapper<Response> { } @Data @TableName("response") public class Response { @TableId(type = IdType.AUTO) private Long id; private String content; private Date createTime; } ``` 在接收到HTTP响应之后,可以先将响应报文封装成Response对象,然后调用ResponseMapper的insert方法来将其插入到数据库。 以上就是实现思路的大致框架,具体实现需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值