我正在四处寻找一种方法来改进处理大量文件的JAXB Unmarshalling性能并找到以下建议:
"如果你真的关心性能,和/或你的应用程序会读取很多小文档,那么创建Unmarshaller可能是一个相对昂贵的操作.在这种情况下,考虑汇集Unmarshaller对象"
谷歌搜索网络找到一个这样的例子没有返回任何东西,所以我认为可能有兴趣将我的实现放在这里使用Spring 3.0和Apache Commons Pool.
UnmarshallerFactory.java
import java.util.HashMap;
import java.util.Map;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import org.apache.commons.pool.KeyedPoolableObjectFactory;
import org.springframework.stereotype.Component;
/**
* Pool of JAXB Unmarshallers.
*
*/
@Component
public class UnmarshallerFactory implements KeyedPoolableObjectFactory {
// Map of JAXB Contexts
@SuppressWarnings("rawtypes")
private final static Map<Object, JAXBContext> JAXB_CONTEXT_MAP = new HashMap<Object, JAXBContext>();
@Override
public void activateObject(final Object arg0, final Object arg1) throws Exception {
}
@Override
public void passivateObject(final Object arg0, final Object arg1) throws Exception {
}
@Override
public final …Run Code Online (Sandbox Code Playgroud)