SORU
25 Kasım 2008, Salı


Nasıl ek açıklamalar kullanılarak yapılandırılmış olan Bahar Fasulye içine bir özellik değeri enjekte edebilir miyim?

Ek açıklamalar ile sınıf, örneğin arasında toplanmış olan Bahar fasulye bir grup var

@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    // Implementation omitted
}

Spring XML dosyasında PropertyPlaceholderConfigurer tanımlanmış bir şey var:

<bean id="propertyConfigurer" 
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="/WEB-INF/app.properties" />
</bean> 

App özelliklerinden biri enjekte etmek istiyorum.fasulye içine properites yukarıda gösterilen. Basit bir şey gibi yapamam

<bean class="com.example.PersonDaoImpl">
    <property name="maxResults" value="${results.max}"/>
</bean>

PersonDaoİmpl Bahar XML dosyası (notlar üzerinden sınıf gelen çekilir) özelliği yok çünkü. Bildiğim kadarıyla aşağıdaki gibi buldum:

@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {

    @Resource(name = "propertyConfigurer")
    protected void setProperties(PropertyPlaceholderConfigurer ppc) {
    // Now how do I access results.max? 
    }
}

Ama ben ppc ilgilendiğim özellik erişimi nasıl benim için açık değil mi?

CEVAP
4 Aralık 2008, PERŞEMBE


Bahar 3 EL desteği kullanarak bunu yapabilirsiniz. Örnek:

@Value("#{systemProperties.databaseName}")
public void setDatabaseName(String dbName) { ... }

@Value("#{strategyBean.databaseKeyGenerator}")
public void setKeyGenerator(KeyGenerator kg) { ... }

systemProperties örtülü bir nesnedir ve strategyBean fasulye bir isim.

Properties bir nesneden bir özellik kapmak için istediğiniz zaman çalışan bir tane daha örnek. Ayrıca alanlar için @Value uygulayabilirsiniz gösterir:

@Value("#{myProperties['github.oauth.clientId']}")
private String githubOauthClientId;

İşte bu konuda yazdım blog post biraz daha fazla bir bilgi.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Hayes

    Damien Hayes

    11 Mart 2008
  • iBand IguJoo

    iBand IguJoo

    25 AĞUSTOS 2006
  • jcortes187

    jcortes187

    24 Mart 2006