SORU
4 AĞUSTOS 2010, ÇARŞAMBA


Birden fazla proje içinde birden çok özellik dosyaları (PropertyPlaceholderConfigurer) kullanarak modül

Şu anda birden fazla proje bölünmüş olan bir uygulama yazıyoruz/modülleri. Örneğin, aşağıdaki modüller atalım:

  • uygulamam-DAO
  • uygulamam-jabber

Her modül kendi Bahar içerik xml dosyası vardır. DAO modülü için gerekli db bağlantı parametreleri ile özelliği bir dosya okuyan bir PropertyPlaceholderConfigurer var. Jabber modülünde ben de jabber bağlantı özelliklerini bir PropertyPlaceHolderConfigurer.

Şimdi uygulamam-DAO içerir ve uygulamam-jabber ana uygulama geliyor. Tüm içerik dosyaları okur ve büyük bir Yay bağlam başlar. Ne yazık ki sadece ilk yüklü alır hangisi bu bağlantı parametreleri okumak çok bağlam başına bir PropertyPlaceholderConfigurer olabilir gibi görünüyor. Diğer bir "yer tutucu çözülemedi 'jabber.gibi bir hata ile bir istisna atar". 'host

Ben sorunun ne olduğunu, ama gerçekten bir çözüm - ya da benim usecase için en iyi yöntem bilmiyorum.

Nasıl her biri kendi özellik dosya yüklemek mümkün, böylece her bir modül yapılandırma ki? Şu an ayrı bağlam dosyalardan PropertyPlaceHolderConfigurer taşındım ve ana uygulamanın bağlam (tek PropertyPlaceHolderConfigurer ile tüm mal yükleme dosyaları) içine birleştirilmiş. Bu dao modülü bilmek zorunda değil, kendi bağlamında bir PropertyPlaceHolderConfigurer ihtiyaç duydukları kullanan hemen herkes .. ayrıca dao modülünde entegrasyon testleri vb başarısız çünkü gerçekten de berbat.

Stackoverflow topluluk.. fikirler/çözümler hakkında merak ediyorum

CEVAP
4 AĞUSTOS 2010, ÇARŞAMBA


Her yer tutucu, kapsamları dahil her zaman unresolvable anahtarları görmezden olduğundan emin olun Eğer her iki yaklaşım iş. Örneğin:

<context:property-placeholder
location="classpath:dao.properties,
          classpath:services.properties,
          classpath:user.properties"
ignore-unresolvable="true"/>

ya

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:dao.properties</value>
                <value>classpath:services.properties</value>
                <value>classpath:user.properties</value>
            </list>
        </property> 
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
    </bean>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009
  • magnum33563

    magnum33563

    8 NİSAN 2011
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009