Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menghalang Pengecualian Pensirian Jackson daripada Objek Malas Tidak Diambil?
Apabila menggunakan objek malas dalam aplikasi, mensirikannya menggunakan Jackson boleh menyebabkan pengecualian jika objek malas belum diambil. Isu ini mungkin timbul, sebagai contoh, apabila cuba mendapatkan semula pengguna dengan atribut "koordinat" yang dimuatkan secara malas menggunakan penyirian Jackson.
Untuk menghalang Jackson daripada mensiri objek malas yang tidak diambil, tersuai MappingJackson2HttpMessageConverter boleh dibuat dan didaftarkan dalam HttpMessageConverter aplikasi. Penukar tersuai ini boleh menggunakan HibernateAwareObjectMapper untuk mengkonfigurasi Jackson untuk menyokong objek malas.
1. Panjangkan WebMvcConfigurerAdapter
Buat kelas konfigurasi yang memanjangkan WebMvcConfigurerAdapter dan mengatasi kaedah configureMessageConverters.
2. Cipta HibernateAwareObjectMapper (Pilihan untuk Konfigurasi XML)
Jika menggunakan konfigurasi XML, cipta HibernateAwareObjectMapper tersuai untuk menyokong objek malas.
3. Daftarkan Hibernate4Module
Dalam kaedah configureMessageConverters, buat MappingJackson2HttpMessageConverter baharu dan daftarkan Hibernate4Module kepadanya. Modul ini membolehkan Jackson mengendalikan objek malas.
4. Tetapkan ObjectMapper kepada Penukar
Konfigurasikan MappingJackson2HttpMessageConverter dengan HibernateAwareObjectMapper atau modul berdaftar.
5. Tambahkan Penukar pada HttpMessageConverters
Panggil kaedah super.configureMessageConverters(converters) untuk menambah penukar tersuai pada senarai.
Konfigurasi XML: Ubah suai mvc:message-converters elemen untuk menggunakan MappingJackson2HttpMessageConverter dengan HibernateAwareObjectMapper tersuai.
Konfigurasi Java: Gunakan kaedah jacksonMessageConverter untuk mencipta dan mengkonfigurasi MappingJackson2HttpMessageConverter, kemudian tambahkannya pada HttpMessageConverters senarai.
Dengan mengikut langkah-langkah ini, anda boleh mengkonfigurasi Jackson untuk mengendalikan objek malas dengan betul dan mengelakkan pengecualian semasa bersiri. Penyelesaian ini memanfaatkan keupayaan terbina dalam MappingJackson2HttpMessageConverter dan Hibernate4Module untuk menyokong objek malas dalam siri Jackson dengan lancar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Pengecualian Pensirian Jackson daripada Objek Malas Tidak Diambil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!