Baru -baru ini, ada banyak orang yang berkonsultasi tentang cara mengkonfigurasi beberapa sumber data untuk musim semi, dan menjawabnya satu per satu merepotkan, dan konfigurasi dalam posting blog sebelumnya juga bermasalah, jadi saya akan merilis demo untuk semua orang.
Ada dua sumber data dalam demo, yaitu MySQL dan Oracle, dan tes sederhana telah dilakukan. Tidak ada masalah dalam beralih secara dinamis sumber data. Saya berharap demo ini dapat membantu semua orang.
Alamat unduhan demo:
Spring secara dinamis beralih demo Sumber Multi-Data: http://xiazai.vevb.com/201701/yuanma/dynamicdatasourcedemo_jb51.rar
Saya juga akan memberikan beberapa penjelasan untuk menjelaskan poin-poin utama saat mengkonfigurasi sumber multi-data:
1. Perhatikan konfigurasi interceptor transaksi
Ini adalah prioritas pertama. Pertama -tama, Anda perlu memahami bahwa manajemen transaksi Spring terikat pada sumber data. Setelah program dijalankan ke lapisan manajemen transaksi (seperti layanan), karena transaksi telah dibuka melalui pencegat sebelum memasukkan lapisan ini, tidak mungkin untuk mengganti sumber data di lapisan ini. Sangat penting untuk memahami prinsip transaksi. Dalam artikel saya sebelumnya, bermasalah untuk mengkonfigurasi pencegat untuk mengganti sumber data di lapisan DAO (karena ini adalah contoh, saya ceroboh dan meminta maaf karena menyesatkan semua orang), tetapi ide -ide yang diberikan tidak bermasalah.
Dalam demo, DataSourceinterceptor yang beralih sumber data dikonfigurasi pada lapisan sebelumnya dari Transaction Interceptor (TXAdvice), yaitu, lapisan pengontrol.
2. Perhatikan pembuatan tabel basis data
Beberapa orang suka menggunakan fungsi pembuatan tabel otomatis Hibernate, tetapi harus dicatat bahwa dalam beberapa sumber data, terutama dalam berbagai sumber data dari berbagai database, tidak mungkin untuk secara otomatis membuat tabel. Karena pembuatan tabel otomatis Hibernate dipicu pada startup proyek, hanya tabel untuk sumber data default yang dikonfigurasi oleh proyek yang dibuat, sementara tabel untuk sumber data lain tidak secara otomatis dibuat. Setiap orang harus memperhatikan.
3. Dialek database Hibernate dapat diabaikan
Saat beberapa sumber data, pengaturan dialek dapat diabaikan. Hibernate akan secara otomatis mengenali database yang berbeda saat digunakan, jadi tidak perlu khawatir tentang konfigurasi ini, dan bahkan mungkin untuk tidak mengkonfigurasinya.
4. Laporkan tidak ada kesalahan sesi saat ini
Ini disebabkan oleh menggunakan sessionfactory.getCurrentsession (). Sesi saat ini terikat ke utas. Utas hanya akan membuka satu sesi (tidak akan ada kesalahan kecuali Anda menggunakan opensession ()). Oleh karena itu, hubungan yang mengikat antara sesi dan utas perlu ditetapkan.
Demo menggunakan Spring untuk mengelola sesi hibernate, jadi OpenSessionInviewFilter dikonfigurasi dalam web.xml, dan current_session_context_class dikonfigurasi di hibernate.cfg.xml. [PS: Saat menggunakan pegas untuk mengelola hibernate, Anda dapat menghapus hibernate.cfg.xml, dan file konfigurasi dari semua pegas yang dikonfigurasi adalah hibernateProperties. Bergantung pada preferensi pribadi]
Akhirnya, beberapa kerangka kerja hanya terintegrasi dalam demo, yang nyaman untuk digunakan semua orang. Ini bermanfaat bagi semua orang. Saya tidak akan menjelaskan konfigurasi dan teknologi kerangka kerja di sini. Jika Anda ingin tahu, Anda dapat memeriksa alamatnya:
Konfigurasi Sumber Multi-Data Spring: //www.vevb.com/article/102282.htm
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.