为什么 autoDiscoverObjectMapper 在 camel-jackson-starter 中默认为 false?
Why autoDiscoverObjectMapper is false by default in camel-jackson-starter?
目前我们正在将我们的应用程序从 Camel 2.x 迁移到 Camel 3.x 并面临一个问题 JacksonDataFormat
默认情况下不使用应用程序上下文中的 ObjectMapper
了。相反,您需要提供 属性 camel.dataformat.json-jackson.auto-discover-object-mapper=true
才能使此功能正常工作。我不明白为什么默认情况下 camel-jackson-starter
模块不等于 true
,这对我来说似乎不合逻辑。可能有人知道这背后的原因?
Apache Camel 正在根据您的 JacksonDataFormat
定义修改 ObjectMapper
bean 属性。这真的很令人困惑,如果看似不相关的 DataFormat
定义正在更改注册表中的单例 ObjectMapper
bean,您可能已经为应用程序的不同部分配置了它。这对于某些开发人员来说可能是出乎意料的,因此已决定在启动期间 fail-fast。
如果您使用多个 JacksonDataFormat
定义,请不要设置 camel.dataformat.json-jackson.auto-discover-object-mapper=true
。您会看到一些奇怪的行为,这将非常难以调试。
参见CAMEL-14101:
The current default behaviour of the json-jackson data format is to try to lookup an ObjectMapper instance to the registry and if not found to create a new one. In case one is found, the data format instance does customize it according to its local properties but as the same ObjectMapper instance could be shared among different json-jackson data formats, it may lead to inconsistencies or unpredictable behaviors.
目前我们正在将我们的应用程序从 Camel 2.x 迁移到 Camel 3.x 并面临一个问题 JacksonDataFormat
默认情况下不使用应用程序上下文中的 ObjectMapper
了。相反,您需要提供 属性 camel.dataformat.json-jackson.auto-discover-object-mapper=true
才能使此功能正常工作。我不明白为什么默认情况下 camel-jackson-starter
模块不等于 true
,这对我来说似乎不合逻辑。可能有人知道这背后的原因?
Apache Camel 正在根据您的 JacksonDataFormat
定义修改 ObjectMapper
bean 属性。这真的很令人困惑,如果看似不相关的 DataFormat
定义正在更改注册表中的单例 ObjectMapper
bean,您可能已经为应用程序的不同部分配置了它。这对于某些开发人员来说可能是出乎意料的,因此已决定在启动期间 fail-fast。
如果您使用多个 JacksonDataFormat
定义,请不要设置 camel.dataformat.json-jackson.auto-discover-object-mapper=true
。您会看到一些奇怪的行为,这将非常难以调试。
参见CAMEL-14101:
The current default behaviour of the json-jackson data format is to try to lookup an ObjectMapper instance to the registry and if not found to create a new one. In case one is found, the data format instance does customize it according to its local properties but as the same ObjectMapper instance could be shared among different json-jackson data formats, it may lead to inconsistencies or unpredictable behaviors.