Même si ObjectMapper est thread-safe, je déconseille fortement de le déclarer comme une variable statique, en particulier dans les applications multithread. Pas même parce que c'est une mauvaise pratique, mais parce que vous courez un risque important de blocage. Je le dis de ma propre expérience. J'ai créé une application avec 4 threads identiques qui recevaient et traitaient des données JSON à partir de services web. Ma demande stagnait souvent sur la commande suivante, d'après le vidage de fil:
Map aPage = mapper.readValue(reader, Map.class);
A côté de cela, la performance n'a pas été bonne. Lorsque j'ai remplacé la variable statique par la variable basée sur l'instance, le blocage a disparu et les performances ont quadruplé. C'est à dire. 2,4 millions de documents JSON ont été traités en 40min.56sec, au lieu de 2,5 heures auparavant.
Avez-vous une source de référence? –
Opps. Je réalise que tu es le développeur de Jackson. Merci pour le super logiciel! Je le compare à JSONObject et à gjson, et j'ai trouvé Jackson répondre à mes besoins. –
Hey pas de problème - heureux d'entendre cela – StaxMan