我需要 grails 中的 com.fasterxml.jackson.databind.ObjectMapper 的共享实例,所以我认为最标准的方法是通过 beans DSL。我在 resources.groovy 中尝试过类似的东西(有很多变体,比如使用委托关键字)
objectMapper(ObjectMapper) { bean ->
bean.setVisibility(PropertyAccessor.ALL, Visibility.ANY)
bean.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
}
但它不起作用,ObjectMapper 配置为默认方式,这与 grails 不兼容。我使用了一种解决方法,可以满足我的需要(在 BootStrap.groovy 中):
def init = { servletContext ->
def bean = Holders.applicationContext.objectMapper
bean.setVisibility(PropertyAccessor.ALL, Visibility.ANY)
bean.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
}
谁能指出我如何在它所属的bean DSL中做到这一点(恕我直言)?