Spring Dersleri – FactoryBean Nedir? Kullanımı

Spring Core
Spring Dersleri

Spring Framework Dersleri‘ne devam ediyoruz.Bu yazıda FactoryBean konusunu inceleyeceğiz.

Spring FactoryBean Nedir?

Spring Framework kullanarak Beanlerimizin Spring container tarafından kontrol altına alınarak yönetilmesini istiyoruz. FactoryBean kullanarak container içerisindeki nesneyi oluşturabilecek fabrika sınıfını tanımlaması yapılmaktadır ve buna ait Factory Metotları bulunmaktadır. Bu sayede nesne örneği oluşturabiliriz. Burada asıl amaçlanmak istenen şey Bean’nin bir örneğini alarak başka bean üzerinden erişmek. Design Pattern olarakta kabul edilen bu yöntemin nasıl olduğunu bir örnek ile açıklayayım.

Kişi örneğimizi yapalım.

public class Kisi{

 private String ad;
 private int yas;

 public Kisi() {
 }

 public Kisi(String ad, int yas) {
  this.ad = ad;
  this.yas = yas;
 }

 public String getAd() {
  return ad;
 }

 public void setAd(String ad) {
  this.ad = ad;
 }

 public int getYas() {
  return yas;
 }

 public void setYas(int yas) {
  this.yas = yas;
 }

 public void yazdir() {
  System.out.println("Kisi ad : " + ad + " yaş : " + yas);
 }
}

Şimdi FactoryBean ve Factory metotumuzu yazalım.

public class Factory {
 
 public Kisi KisiFactoryMetot(){
  return new Kisi();
 }
}

Spring konfigürasyon dosyasına değerlerimizi atayalı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"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

 <bean id="beanFactory" class="com.burakkutbay" />

 <bean id="kisi1" factory-bean="beanFactory" factory-method="KisiFactroyMetot">
  <property name="ad" value="Veli" />
  <property name="yas" value="26" />
 </bean>

</beans>

Programımızı çalıştıracak main classımızı yazalım.

public class Main {

 public static void main(String[] args) {
 
  ApplicationContext context= 
    new ClassPathXmlApplicationContext("springContext.xml");
  
  Kisi kisi=(Kisi) context.getBean("kisi1");
  kisi.yazdir();

 }

}

Çıktımız ise şöyle:

Kisi ad : Veli yas 26

 

Önceki Ders: Qualifier Anotasyonu Nedir? Kullanımı Spring Dersleri Sonraki Ders: Collections Kullanımı ve Örneği

3 Comments

  1. Bu satırda class directory eksik yazılmış sanırım.

  2. “bean id=”beanFactory” class=”com.burakkutbay””
    Bu satırda class directory eksik yazılmış sanırım.

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Burak KUTBAY 2010 - 2019
%d blogcu bunu beğendi: