Aunque es seguro declarar un ObjectMapper estático en términos de seguridad de subprocesos, debe tener en cuenta que la construcción de variables de Objeto estáticas en Java se considera una mala práctica. Para obtener más información, consulte Why are static variables considered evil? (y, si lo desea, my answer)
En resumen, debe evitar las estáticas porque dificultan la realización de pruebas unitarias concisas. Por ejemplo, con un ObjectMapper estático final, no puede cambiar la serialización de JSON por un código ficticio o un no-op.
Además, un final estático le impide volver a configurar ObjectMapper en tiempo de ejecución. Puede que no visualice una razón para eso ahora, pero si se bloquea en un patrón final estático, nada menos que derribar el cargador de clases le permitirá volver a inicializarlo.
En el caso de ObjectMapper está bien, pero en general es una mala práctica y no hay ninguna ventaja sobre el uso de un patrón singleton o inversión de control para administrar sus objetos de larga vida.
¿Tiene alguna fuente de referencia? –
Opps. Me doy cuenta de que eres el desarrollador de Jackson. Gracias por el excelente software! Lo comparo contra JSONObject y gjson, y descubrí que Jackson satisface mis necesidades. –
Oye, no hay problema - me alegra oír esto – StaxMan