gpt4 book ai didi

java - 为每个类使用单个 JAXBContext 还是单独的上下文更好?

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:50 26 4
gpt4 key购买 nike

我知道 JAXBContext 应该只创建一次,因为它非常昂贵,但我很好奇是否最好为所有必需的类创建一个上下文,

JAXBContext newInstance(Class... classesToBeBound)

或者将所有上下文保留在 map 中并在尚未创建时创建它们?

Map<Class, JAXBContext> map = new HashMap<>();

public JAXBContext getContext(Class clazz) {
if (map.get(clazz) == null) {
map.put(clazz, JAXBContext.newInstance(clazz));
}
return map.get(clazz);
}

最佳答案

我永远无法理解为什么人们为每个类甚至多个类创建 JAXBContext

我更喜欢为特定上下文路径创建JAXBContext,该路径通常是与我需要使用的各个模式相对应的一个或多个包。然后我可以将它用于这些包中的所有类,它还涵盖更复杂的情况,例如替换组。

所以:

JAXBContext context = JAXBContext.newInstance("com.acme.foo:org.terra.bar");

如果我要使其基于类,那么我会为每个包创建一个 JAXBContext。还要考虑多线程访问,以便两个线程不会并行创建两个 JAXBContext

关于java - 为每个类使用单个 JAXBContext 还是单独的上下文更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49494131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com