如何为对象映射器序列化器提供一些值并异步执行此序列化器

时间:2019-05-22 21:41:48

标签: java spring spring-webflux

我在Spring WebFlux中遇到了序列化器/反序列化器的问题。
我需要提供给序列化器“时区”值,该值可以从登录用户或当前请求标头接收。如何将这些值注入序列化器?
顺便说一句,也许我不应该在Reactor中使用对象映射器? (好像没有能力与mono和flux一起使用)

public class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {

    private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");

    @Override
    public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        ReactiveSecurityContextHolder.getContext()
                .subscribe(c -> {
                            // some magic will be here
                            gen.writeString(value.format(FORMATTER));
                        });

    }
}

但是
1.安全上下文在此处为空(但在控制器开始处不为空)
2.即使订阅会打电话,我也会收到异常

0 个答案:

没有答案