Kami sedang menulis sebuah aplikasi yang dibagi menjadi beberapa proyek / modul. Misalnya, mari kita ambil modul berikut:
- myApp-DAO
- myApp-jabber
Setiap modul memiliki file xml konteks Musim Semi sendiri. Untuk modul DAO saya memiliki PropertyPlaceholderConfigurer yang membaca file properti dengan parameter koneksi db yang diperlukan. Dalam modul jabber saya juga memiliki PropertyPlaceHolderConfigurer untuk properti koneksi jabber.
Sekarang hadir aplikasi utama yang mencakup myApp-DAO dan myApp-jabber. Itu membaca semua file konteks dan memulai satu konteks Spring yang besar. Sayangnya, tampaknya hanya ada satu PropertyPlaceholderConfigurer per konteks, jadi modul mana pun yang dimuat lebih dulu dapat membaca parameter koneksinya. Yang lain melontarkan pengecualian dengan kesalahan seperti "Tidak dapat menyelesaikan placeholder 'jabber.host'"
Saya agak mengerti apa masalahnya, tetapi saya tidak benar-benar tahu solusinya - atau praktik terbaik untuk kasus penggunaan saya.
Bagaimana saya mengkonfigurasi setiap modul sehingga masing-masing dapat memuat file propertinya sendiri? Saat ini saya telah memindahkan PropertyPlaceHolderConfigurer dari file konteks terpisah dan menggabungkannya ke dalam konteks aplikasi utama (memuat semua file properti dengan satu PropertyPlaceHolderConfigurer). Ini menyebalkan, karena sekarang setiap orang yang menggunakan modul dao harus tahu, bahwa mereka membutuhkan PropertyPlaceHolderConfigurer dalam konteksnya .. juga tes integrasi dalam modul dao gagal dll.
Saya ingin tahu tentang solusi / ide dari komunitas stackoverflow ..