2016-04-11 17 views
1

Kısa süre önce Spring framework'ü kullanmaya başladım. Xml dosyasında (geleneksel yol) @Resource ve Property argümanı ne zaman kullanacağım karıştı. Yeni Ek Açıklamalar tasarlarken dikkate alınan özel gerçek kullanım durumları nelerdir? Bahar Ek Açıklamalarını kullanmaya tamamen geçiş yapmanızı tavsiye eder misiniz?@Resource vs Özellik argümanı xml olarak

+0

@ryekayo Bilgi için teşekkürler. Sorumu güncelledim. – Ashley

cevap

0

@Autowired bir Spring'e özgüdür ve @Resource JSR'dir, ancak geçerli Spring her ikisini de destekler. JSR birini kullanacağım, çünkü başka bir şeyi kullanmaya karar verdiyseniz, Bahar çerçevesi olmadan da çalışacaktır. XML ile ilgili ek açıklamaları dikkate alarak lütfen bu soruya bakın: Spring annotation-based DI vs xml configuration?

Kullanım durumuna bağlıdır. Benim için ek açıklamalar daha kolay çünkü her şeyi doğrudan java kodunda tutmaya izin veriyorlar, böylece sadece kendi kendini belgeliyor. Ancak bazen XML kullanmak isteyebilirsiniz (örneğin, kodun kendisini değiştirmeden yapılandırmanızı değiştirmek isterseniz, kolayca farklı xml konumları arasında geçiş yapabilirsiniz)

+0

Bana göre, daha sonra değiştirmek isteyebileceğimiz konfigürasyon, yer tutucuları veya değerleri belirlediğimiz özellik argümanları olabilirdi. Tüm değişkenlerin @Resource ile açıklanması gerekir. – Ashley

1

@Resource ve @Autowired arasındaki fark çok iyi açıklanmıştır. Mesajlar, ayrıca benim blog dan da bulabilirsin. Temel olarak, Enjeksiyondan önce fasulye aramanın farklı yollarını belirtiyorlar.
@Autowired, varsayılan olarak isme göre türüne göre bir araya getirilir; oysa, varsayılan olarak ada göre toplanmış olan @Resource. Ayrıca farklı kavanoza aittirler. Property argument in xml file İlişkin


, bu fasulye alanların değerini belirten yolu olduğunu. Eğer ne xml yapmanız gereken bu nesnede alanının değeri, sadece ne gibi bahar söylemektir, bir Person Sınıf bir amacı SamplePerson adında bir fasulye oluşturmak istiyor ki:

Person samplePerson = new Person(); 
samplePerson.setAge(23); 
samplePerson.setName("Rugal"); 

oluşturduktan sonra Böyle bir fasulye, Bahar içeriği bu nesneyi daha sonra kullanılmak üzere kendi kap içine yerleştirecektir. Şimdi O zaman bu person nesne xml tanımlamaya uygun olarak öznitelikleri olacaktır göreceksiniz

@Autowired 
private Person samplePerson; 

kullanarak gerektiğinde bir yere bu samplePerson fasulye enjekte @Autowired veya @Resource kullanabilirsiniz.


Ama birileri yeterince dinamik değildir iddia olabilir ancak aslında, ben tercih ederim Java tarzında tüm yapılandırmayı yapmak için XML altında koduna can sıkıcı.
Evet, XML yapılandırmasından Java yapılandırmasına kadar her şeyi değiştirebilirsin. Numunemi github'dan alabilirsiniz.
İlkbaharda yeniyseniz, archetype numaralı telefonu kullanmamı öneririz. Tam entegre bir kod tabanı alacaksınız.