【问题标题】:JAXBContext cache in multi-module maven project多模块Maven项目中的JAXBContext缓存
【发布时间】:2026-02-01 22:10:01
【问题描述】:

JAXB 规范声明 JAXB 上下文是线程安全的。因为它的创建很耗时,所以鼓励只创建/初始化一次。如何在多模块 maven 项目中正确执行?将类作为参数传递可能会引入一些循环依赖,将字符串作为包名传递似乎很乏味且容易出错。有什么推荐的方法吗?

【问题讨论】:

    标签: java maven jaxb multi-module


    【解决方案1】:

    不是在每个模块中都有 JAXB 映射的类,而是将它们分组在 schemajaxbapi 模块中(或任何最适合的名称) .在该模块中,您可以将工厂用于获取 JAXBContext 实例。

    如果您不想在同一个模块中混合映射类,对于每个使用 JAXB 的模块,将映射类提取到另一个模块。例如,如果您有 moduleAmoduleBmoduleC,则将 JAXB 映射类提取到 moduleA-schemamoduleB-schemamoduleC-schema。这样,您可以将 JAXBContext 实例的工厂放在依赖于 moduleA-schemamoduleB-schemamoduleC-schema 的实用程序模块中,但不依赖于原始模块,因此您可以避免循环依赖。

    【讨论】:

      最近更新 更多