spring-boot - Spring batch item writer rest API

标签 spring-boot spring-batch spring-rest spring-resttemplate itemwriter

是否可以在 Spring 批处理项目中使用 RestAPI (REST TEMPLATE) 从数据库读取数据、处理数据并在 ItemWriter 中发送到另一个系统?我只能看到获取数据并将其写入 csv 文件。

最佳答案

可以创建您自己的自定义 ItemWriter

在您的情况下,请将 spring-boot-starter-web 依赖项添加到您的 pom.xmlbuild.gradle

例子:

package com.example.batch;

import lombok.extern.log4j.Log4j2;
import org.springframework.batch.item.ItemWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

import java.util.List;

@Log4j2
public class RestItemWriter implements ItemWriter<String> {
    @Autowired
    RestTemplate restTemplate;

    public RestItemWriter(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @Override
    public void write(List<? extends String> items) throws Exception {
        ResponseEntity<Users> users = restTemplate.getForEntity("https://jsonplaceholder.typicode.com/users/1", Users.class);

        log.info("Status code is: " + users.getStatusCode());
    }
}


package com.example.batch;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Users {

    public String id;
    public String name;
    public String username;
    public String email;
    public String phone;
}

有关自定义项目编写器的更多信息 here

关于spring-boot - Spring batch item writer rest API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69338067/

相关文章:

java - Spring Boot - 加载多个 YAML 文件

java - 为什么我的 swagger 不能在 java 中使用 springboot?

java - 在 Spring Boot RequestMapping 中添加方法

instance - Spring 批处理 : Restartable attribute ignored

java - JdbcBatchItemWriter 如何决定批量大小?

java - 将 JSON 添加到 spring rest Controller 中的模型时如何删除转义字符

spring-boot - 发布请求的最大有效负载大小和 Spring Boot Rest 的获取响应

java - 如何测试使用 @PreAuthorized(hasAnyAuthority(...)) 注释的 Spring Boot Controller 方法

java - Spring 批处理 :How it works in distributed environemnt

java - Java中日期格式的转换