The struktur file Maven dapat membantu dengan ini
Pada dasarnya file konfigurasi Spring (yang dapat memiliki nama apa pun, bukan hanya generik applicationContext.xml
) diperlakukan sebagai sumber daya classpath dan diajukan di bawah src/main/resources
. Selama proses pembangunan, ini kemudian disalin ke WEB-INF/classes
direktori yang merupakan tempat normal untuk file-file ini berakhir.
Variasi termasuk spring
direktori tambahan (misalnya src/main/resources/spring
) untuk memisahkan konteks Spring dari sumber daya lain yang didedikasikan untuk kerangka kerja aplikasi. Anda mungkin ingin membagi konteks aplikasi menjadi lapisan khusus seperti:
example-servlet.xml
example-data.xml
example-security.xml
dan seterusnya.
Bagaimana dengan lingkungan yang berbeda seperti dev / test / produksi?
Biasanya, konfigurasi Spring Anda harus mengambil konfigurasi lingkungan dari, ahem, lingkungannya. Biasanya ini berarti menggunakan JNDI, JDBC, variabel lingkungan atau file properti eksternal untuk menyediakan konfigurasi yang diperlukan. Saya daftar mereka dalam urutan preferensi karena JNDI umumnya lebih mudah untuk mengelola daripada file properti eksternal dalam kluster produksi yang dikendalikan.
Dalam hal pengujian integrasi, Anda mungkin perlu menggunakan file konfigurasi Spring "hanya test". Ini akan berisi konteks khusus yang menggunakan kacang tes atau konfigurasi. Ini akan hadir di bawah src / test / resource dan mungkin memiliki test-
awalan untuk memastikan bahwa pengembang mengetahui tujuan mereka. Penggunaan tipikal adalah menyediakan DataSource non-JNDI yang mungkin menargetkan basis data HSQLDB selama pembuatan tes otomatis dan akan dirujuk dalam kasus uji.
Namun, secara umum sebagian besar file konteks Musim Semi Anda tidak perlu modifikasi khusus saat mereka bergerak di antara tingkatan. Seharusnya artefak build yang sama (misalnya file WAR) digunakan dalam dev / test / produksi hanya dengan kredensial yang berbeda.