2010-12-02 23 views
7

parametreli enjeksiyon yöntemi Yay arama yöntemini parametrelerle enjekte etmenin bir yolu var mı? Örneğin prototip-scoped fasülyeleri, kurucu aracılığıyla rasgele parametreler geçirirken örneklendirmek istiyorum.Yay arama yöntemi

cevap

2

Bunları saha/ayarlayıcı enjeksiyonu ile enjekte edebilirsiniz. (Her ne kadar desteklense de, kurucu enjeksiyonunun yay ile çatlatıldığını unutmayın)

+0

Neden kurucu enjeksiyonu üzerinde ayarlayıcı enjeksiyonu için bir tercih var? Eşdeğer olduklarını düşündüm. –

+0

Oluşturucu enjeksiyonu, döngüsel bağımlılıkları daha katı hale getirebilir. – Bozho

+0

@Bozho: Yani aslında iyi bir şey ... dairesel bağımlılıklar kullanılmalı, doğru mu? – TWiStErRob

0

kısaca, no. Bahar "yöntem enjeksiyonu" denen bir şeyi destekliyor ama düşündüğünden farklı. İlkbahar aynı zamanda kurucu enjeksiyonunu da destekliyor, ancak o zaman kurucuyu kendiniz çağırmıyorsunuz, Bahar, ve kendi başına kablolama yapıyor.

Bunun yerine, keyfi kendiniz parametre sınıf örneğini ve geçmek yansıma kullanabilirsiniz: Bu hayati özellik nihayet Bahar 4.1.0.RC2 eklendi gibi

Class<MyObject> clazz = MyObject.class; // this can be looked up or stored in a field, etc. 
MyObject myObject = clazz.getConstructor(String.class, int.class) 
         .newInstance("arbitrary parameter", 42); 
1

görünüyor. Test ettim ve işe yaradı.

O JIRA bilet SPR-7431 ("Passing lookup-method arguments to created bean constructor") bir parçası olarak eklenmiştir:

< arama-yöntem /> herhangi bir sayıda parametre belirterek izin vermelidir. Bu parametreler doğrudan yeni oluşturulan fasülyenin yapıcısına aktarılmalıdır. özelliği nihayet eklenmiş konusunda daha fazla bilgi için

, this blog post JIRA bilet açtı adam tarafından yazılmıştır.

İlgili konular