多模块Maven项目中的JAXBContext缓存

问题描述 投票:1回答:1

JAXB规范指出,JAXB上下文是线程安全的。由于创建它很耗时,因此建议仅创建/初始化一次。在多模块Maven项目中如何正确执行?将类作为参数传递可能会引入一些循环依赖性,将字符串作为软件包名称传递似乎很乏味且容易出错。有建议的方法吗?

java maven jaxb multi-module
1个回答
0
投票

而不是让每个模块中的JAXB映射的类将它们分组在schemajaxbapi模块(或最适合的名称)中。在该模块中,您可以放置​​工厂来获取JAXBContext实例。

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

© www.soinside.com 2019 - 2024. All rights reserved.