Spring Ders11 - Dependency Injection Alternatifleri | Annotation-Driven Autowiring
Annotation-Driven Autowiring (Anotasyon Tabanlı Autowiring), autowiring yapısının başka bir modelidir. Bu yapıda bağımlılığın olacağı .xml dosyasında değil de direkt olarak java sınıflarında belirtilir.
Ayrıca xml dosyasında isim uzaylarına context uzayı ve aşağıdaki ifade eklenmelidir.
Annotation-Driven Autowiring (Anotasyon Tabanlı Autowiring) ,.
- Değişkenlere,
- Metotlara,
- Constructor metotlara uygulanabilir.
Tüm bunlar için sadece,
Örnek olarak,
Bir nesneye uygulanması
Aşağıda bir değişkene (nesneye) autowiring uygulaması yapılan bir örnek program verilmiştir.
package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); B b=(B)context.getBean("b"); System.out.println("B sinifi içerisindeki a nesnesinin sayi degeri : "+b.getA().getSayi()); } }
A.java
package test; public class A { private int sayi; public A() { System.out.println("A nesnesi oluşturuldu."); } public int getSayi() { return sayi; } public void setSayi(int sayi) { this.sayi = sayi; } }
B.java
package test; import org.springframework.beans.factory.annotation.Autowired; public class B { @Autowired private A a; public B() { System.out.println("B nesnesi oluşturuldu."); } public A getA() { return a; } public void setA(A a) { this.a = a; } }
applicationContex.xml
<?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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <bean id="a" class="test.A"> <property name="sayi" value="21" /> </bean> <bean id="b" class="test.B"></bean> <context:annotation-config /> </beans>
Yorumlar
Yorum Gönder