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
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.
Nasıl istek kapsamlı bir fasulye içine...
Nasıl MAX(Sütun değeri), SQL başka bir...
Enjekte Bahar fasulye içine alay Mocki...
eğer kontrol Listesi nasıl<T> öğ...
Nasıl bağımlılıkları enjekte etmek içi...