Meskipun aman untuk mendeklarasikan ObjectMapper statis dalam hal keamanan utas, Anda harus menyadari bahwa membangun variabel Objek statis di Jawa dianggap praktik buruk. Untuk detail lebih lanjut, lihat Mengapa variabel statis dianggap jahat? (dan jika Anda mau, jawabanku )
Singkatnya, statika harus dihindari karena menyulitkan untuk menulis tes unit ringkas. Misalnya, dengan ObjectMapper final statis, Anda tidak dapat menukar keluar serialisasi JSON untuk kode dummy atau larangan.
Selain itu, final statis mencegah Anda mengkonfigurasi ulang ObjectMapper saat runtime. Anda mungkin tidak membayangkan alasan untuk itu sekarang, tetapi jika Anda mengunci diri Anda sendiri ke dalam pola final statis, tidak akan merusak classloader yang akan membuat Anda menginisialisasi ulang itu.
Dalam kasus ObjectMapper baik-baik saja, tetapi secara umum itu adalah praktik yang buruk dan tidak ada keuntungan dibandingkan menggunakan pola tunggal atau inversi-of-control untuk mengelola objek berumur panjang Anda.
ObjectMapper
masih aman setelahObjectMapper#setDateFormat()
dipanggil. Diketahui bahwaSimpleDateFormat
ini tidak aman untuk thread , jadiObjectMapper
tidak akan kecuali itu mengklon misalnyaSerializationConfig
sebelum masing-masingwriteValue()
(saya ragu). Bisakah Anda menghilangkan rasa takut saya?