Spring – Ders 12 Autowiring – 03 @Autowired – @Qualifier

Merhaba Arkadaslar,
Bu yazimda @Autowired konusuna devam edecegiz , @Autowired notasyonunu bir onceki yazimda kullanmistik , bu yazimda @Qualifier notasyonunu inceleyecegiz.

@Autowired islemi icin birden fazla uygun <bean> tanimlamasi oldugunu dusunelim bu durumda Spring hangi <bean> i kullanacak ? Bu durumda kafasi karisacaktir 🙂
Bu durumu cozmek icin @Qualifier notasyonunu kullanabiliriz.
Bir onceki ornek siniflarimiz uzerinden devam ediyorum. xml dosyamizin bean tanimlama kismini inceleyelim..

	<bean id="employeeid" class="erguder.levent._12.autowiring.qualifiers.simple.Employee">
		<property name="name" value="Levent Erguder" />
		<property name="age" value="23" />
	</bean>

	<bean id="address_id1" class="erguder.levent._12.autowiring.qualifiers.simple.Address">
		<property name="city" value="Istanbul" />
		<property name="district" value="Umraniye" />

	</bean>

		<bean id="address_id2" class="erguder.levent._12.autowiring.qualifiers.simple.Address">
		<property name="city" value="Sivas" />
		<property name="district" value="Hafik" />

	</bean>

Burada dikkat ederseniz Address sinifimiza ait 2 tane bean bulunmaktadir. Bu durumda Spring hangisini isleme koyacaktir ? Employee sinifimizda su yapi ile istenilen bean’i isleme koyabiliriz.

	@Autowired
	@Qualifier("address_id2")
	private Address address;

@Qualifier notasyonunda address_id2 olan bean’i kullanacagini belirttik.
Test sinifimizi calistirdigimizda addres degiskeninde Sivas ve Hafik , yani address_id2 ye ait bilgilerin yer aldigini gorebiliriz;
Employee [name=Levent Erguder, age=23, address=Address [city=Sivas, district=Hafik]]

Kaynak Kodlar:SpringProject_v12

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *