Obwohl es sicher ist, einen statischen ObjectMapper im Hinblick auf die Threadsicherheit zu deklarieren, sollten Sie sich bewusst sein, dass die Konstruktion von statischen Objektvariablen in Java als schlechte Praxis gilt. Für weitere Einzelheiten siehe Warum werden statische Variablen als böse angesehen? (und wenn Sie möchten, meine Antwort )
Kurz gesagt, Statik sollte vermieden werden, weil sie das Schreiben von prägnanten Unit-Tests erschwert. Bei einem statischen finalen ObjectMapper können Sie beispielsweise die JSON-Serialisierung nicht gegen Dummy-Code oder ein No-op austauschen.
Darüber hinaus verhindert ein statisches Finale, dass Sie ObjectMapper zur Laufzeit neu konfigurieren müssen. Vielleicht sehen Sie jetzt keinen Grund dafür, aber wenn Sie sich auf ein statisches Final-Muster festlegen, können Sie den Classloader durch nichts anderes als einen Abriss re-initialisieren.
Im Fall von ObjectMapper ist das in Ordnung, aber im Allgemeinen ist es schlechte Praxis und es gibt keinen Vorteil gegenüber der Verwendung eines Singleton-Musters oder der Inversion-of-Control, um Ihre langlebigen Objekte zu verwalten.