为每个类设置单个JAXBContext或单独的上下文是否更好?

时间:2018-03-26 14:40:03

标签: java jaxb singleton

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

 foreach ($decodeArray as $item => $key)
 { 
 echo $item['establishments'][0]['establishment']['name'];
 }

或者将所有上下文保留在地图中并在尚未创建的情况下创建它们?

JAXBContext newInstance(Class... classesToBeBound)

1 个答案:

答案 0 :(得分:0)

我永远无法理解为什么人们为每个班级甚至几个班级创建JAXBContext

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

所以:

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

如果我要使它基于类,那么我将为每个包创建一个JAXBContext。并且还要考虑多线程访问,这样两个线程就不会并行创建两个JAXBContexts