小编wos*_*pin的帖子

在 Spring 环境中配置 Jackson 的 DeserializationProblemHandler

据我了解,Spring 已经为 Jackson 提供了一个 bean ObjectMapper。因此,我不是创建一个新的 bean,而是尝试自定义这个 bean。

从这篇博文,然后这个Github项目我使用Jackson2ObjectMapperBuilderbean来实现这个定制。

@Bean
public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder(ApplicationContext context) {
    Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
    builder.findModulesViaServiceLoader(true);
    return builder;
}
Run Code Online (Sandbox Code Playgroud)

然后,我尝试自定义反序列化器以使其宽松:如果在反序列化属性时引发异常,我希望结果对象的属性为并null让反序列化继续(默认值是在第一个不能被序列化的属性上失败)反序列化)。

我已经能够通过NullableFieldsDeserializationProblemHandler扩展的类来实现这一点DeserializationProblemHandler(我认为代码不相关,但如果需要,我可以共享它)。

注册此处理程序的最简单方法是使用.addHandler()的方法ObjectMapper。但当然,这样做,我需要在每次注入和使用ObjectMapper. 我希望能够配置处理程序,以便每次ObjectMapper自动连接时,处理程序都已经存在。

到目前为止,我想到的最佳解决方案是@PostConstruct仅使用注释来注册问题处理程序。

@Configuration
public class JacksonConfiguration implements InitializingBean {

  @Autowired private ObjectMapper objectMapper;

  @Bean
  public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder(ApplicationContext context) {
    Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
    builder.findModulesViaServiceLoader(true);
    return builder;
  }

  @Override
  public …
Run Code Online (Sandbox Code Playgroud)

spring jackson spring-boot jackson2 jackson-databind

4
推荐指数
1
解决办法
5951
查看次数

Facebook Messenger上的附件链接可以使用多长时间

在Facebook Messenger上讨论时,您可以上传文件并将其发送给您正在讨论的人.我实际上正在开发一个Messenger Bot(参见文档),因此,我试图找到这个上传工具的限制.

我发现上传超过25MB的文件是不可能的(我在这里找到了这些信息).

但是,一旦上传,我找不到这些附件有多长时间可用?实际上,Facebook Messenger正在服务器上传文件,并在通信中发送该资源的链接.但是我无法找到这个链接是否会永久可用,或者访问权限是否会受到时间的限制(因此,我认为附件会在此期限后删除).

facebook facebook-graph-api facebook-messenger facebook-messenger-bot

2
推荐指数
1
解决办法
801
查看次数