Spring 批项目作者休息 API
Spring batch item writer rest API
是否可以在 Spring 批处理项目中使用 RestAPI (REST TEMPLATE) 从数据库中读取数据、处理数据并在 ItemWriter 中发送到另一个系统?我只能看到获取数据并将其写入 csv 文件。
可以创建自己的自定义 ItemWriter
。
在您的情况下,请将 spring-boot-starter-web
依赖项添加到您的 pom.xml
或 build.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 批处理项目中使用 RestAPI (REST TEMPLATE) 从数据库中读取数据、处理数据并在 ItemWriter 中发送到另一个系统?我只能看到获取数据并将其写入 csv 文件。
可以创建自己的自定义 ItemWriter
。
在您的情况下,请将 spring-boot-starter-web
依赖项添加到您的 pom.xml
或 build.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