Maven dosya yapısı bu konuda yardımcı olabilir
Özünde, Spring konfigürasyon dosyaları (sadece jenerik değil, bu arada herhangi bir isme sahip olabilir applicationContext.xml
) sınıf yolu kaynakları olarak ele alınır ve altında dosyalanır src/main/resources
. Oluşturma işlemi sırasında, bunlar daha sonra WEB-INF/classes
bu dosyaların bitmesi için normal bir yer olan dizine kopyalanır .
Varyasyonlar , Spring bağlamlarını uygulama çerçevelerine ayrılmış diğer kaynaklardan ayırmak için ek bir spring
dizin (örn. src/main/resources/spring
) İçerir. Uygulama bağlamlarını aşağıdaki gibi özel katmanlara ayırmak isteyebilirsiniz:
example-servlet.xml
example-data.xml
example-security.xml
ve bunun gibi.
Geliştirme / test / üretim gibi farklı ortamlar ne olacak?
Genelde, Spring yapılandırmanız ortam yapılandırmasını ahem ortamından almalıdır. Genellikle bu, gerekli yapılandırmayı sağlamak için JNDI, JDBC, ortam değişkenleri veya harici özellikler dosyalarının kullanılması anlamına gelir. Bunları tercih sırasına göre listeliyorum, çünkü JNDI'nin yönetilmesi genellikle kontrollü bir üretim kümesindeki dış özellik dosyalarından daha kolaydır.
Entegrasyon testi durumunda, "salt test" Yay yapılandırma dosyası kullanmanız gerekebilir. Bu, test fasulye veya konfigürasyonu kullanan özel bağlamlar içerecektir. Bunlar src / test / resources altında bulunur ve test-
geliştiricilerin amaçlarının farkında olduklarından emin olmak için bir ön eki olabilir . Tipik bir kullanım, derlemenin otomatikleştirilmiş testleri sırasında bir HSQLDB veritabanını hedefleyen JNDI olmayan bir Veri Kaynağı sağlamak ve test durumunda referans gösterilecektir.
Bununla birlikte, genel olarak Spring bağlam dosyalarınızın çoğunun katmanlar arasında hareket ettikçe özel değişiklik yapması gerekmez. Dev / test / üretimde sadece farklı kimlik bilgileriyle aynı derleme yapısının (örn. WAR dosyası) kullanılması gerekir.