Spring Dersleri – Autowired Anotasyonu Kullanımı
Spring Dersleri‘ne devam ediyoruz.
Bu yazıda Spring Autowired anotasyonu nedir? Nasıl kullanılır? Spring Autowired örneği yaparak inceleyeğiz. Önceki dersimizde Xml konfigürasyonu yaparak Autowiring konusunu işlemiştik. Bu yazıda ise Anotasyonu kullanarak bir örnek yapıp yapısına bakacağız.
@Autowired anotasyonu sayesinde bir bean içerisindeki değerleri başka beanin içerisine enjekte edebilir değerlerini koruyarak kullanabiliriz. @Autowired anotasyonunu bir değişken, setter ya da yapılandırıcı metot üzerinde kullanılabilmekteyiz. Bir senaryo yaparak @Autowired kullanımına bakalım.
public class Uye { private String ad; private String soyad; private String kullaniciAdi; @Autowired private Adres adres; public String getAd() { return ad; } public void setAd(String ad) { this.ad = ad; } public String getSoyad() { return soyad; } public void setSoyad(String soyad) { this.soyad = soyad; } public String getKullaniciAdi() { return kullaniciAdi; } public void setKullaniciAdi(String kullaniciAdi) { this.kullaniciAdi = kullaniciAdi; } public Adres getAdres() { return adres; } public void setAdres(String adres) { this.adres = adres; } }
Uye sınıfımızda Adres sınıfının @Autowired yaparak Uye sınıfına inject ettik.
public class Adres { private String sokak; private String mahalle; private String cadde; public String getSokak() { return sokak; } public void setSokak(String sokak) { this.sokak = sokak; } public String getMahalle() { return mahalle; } public void setMahalle(String mahalle) { this.mahalle = mahalle; } public String getCadde() { return cadde; } public void setCadde(String cadde) { this.cadde = cadde; } }
Adres sınıfımızı tanımladık. Şimdi çalıştırıcı sınıfımızı yapalım.
public class App { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml"); Bolum bolum= (Adres) context.getBean("adres"); System.out.println("Adres :"+adres.getMahalle()+" Uye Adı:"+uye.getUye().getAd()); } }
Xml konfigürasyonumuzu yapılandıralım. Verilerimizi tanımlayalım.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:annotation-config /> <bean id="uye" class="com.burakkutbay.Uye"> <property name="ad" value="Burak Kutbay" /> <property name="soyad" value="80" /> <property name="kullaniciadi" value="burakkutbay" /> </bean> <bean id="adres" class="com.burakkutbay.Adres"> <property name="sokak" value="Java" /> <property name="mahalle" value="Spring" /> <property name="cadde" value="Hibernate" /> </bean> </beans>
<context:annotation–config /> diyerek Java sınıflarımız içerisinde kullanacağımız Autowired anotasyonunu aktif hela getiriyoruz. @Autowired anotasyonu sayesinde Uye sınıfından bilgileri istediğimizde adres bilgileride gelmiş olmaktadır.
Önceki Ders: Autowiring Nedir? Kullanımı | Spring Dersleri | Sonraki Ders: Bean Scope Kullanımı |
kodlarda hep hatalar var keşke bir derleseydiniz
Aldığınız hata nedir?
App class ının içinde Bolum demişsiniz ama system.out.println içinde adres ve uye neslerinin feature larını print etmişsiniz.
setAdres string mi alıyor?