如何在Spring中将RequestHeader转换为自定义对象

如何在Spring中将RequestHeader转换为自定义对象,第1张

如何在Spring中将RequestHeader转换为自定义对象

基本上我已经完成了评论中的建议。我将仅提供简短示例。假设我们有下一个控制器和用户POJO:

import org.springframework.web.bind.annotation.RestController;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestHeader;@RestControllerpublic class SimpleController {    @GetMapping("/user")    public String greeting(@RequestHeader(name = "userId") User user) {        return "Hey, " + user.toString();    }}public class User {    private String id;    private String firstName;    private String lastName;    ...}

然后,我们将创建转换器

import org.springframework.core.convert.converter.Converter;import org.springframework.stereotype.Component;@Componentpublic class UserFromHeaderConverter implements Converter<String, User> {    @Override    public User convert(final String userId) {        // fetch user from the database etc.        final User user = new User();        user.setId(userId);        user.setFirstName("First");        user.setLastName("Last");        return user;    }}

测试示例:

curl --header "userId: 123" localhost:8080/user

结果将是:

Hey, User{id='123', firstName='First', lastName='Last'}

顺便说一下,我已经使用了下一个版本:

spring-boot:2.0.3 and spring-web:5.0.7



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5649945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存