基本上我已经完成了评论中的建议。我将仅提供简短示例。假设我们有下一个控制器和用户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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)