Spring Ders03 - Factory Bean & Factory Method


   Factory bean      : Bir container tabanlı beanin, container tabanlı başka bir beani örneklemesinden sorumlu beandir.

   Factory method : Bir factory beanin hedef tipteki bir beani örnekleyen metodudur.


 <beans..>
     <bean id="beanF"  class="F"/>
     <bean id="bean1" factory-bean="beanF" factory-method="methodF"/>
</beans>



public class F{
    public T methodF(){
          return new T();
   }


Yani yukarıdaki kodda anlatılmak istenen,
bean1 örneği oluşturulması için beanF beaninin methodF metodu çağrılıyor. Bu kadar basit.

Eğer ki methodF static metot olsaydı, beanF'yi oluşturmamıza gerek yoktu. Direkt olarak methodF'i kullanabilirdik.


<beans..>
     <bean id="bean1" factory-method="methodF"/>
</beans>



  public class F{
    public static T methodF(){
          return new T();
   }
}


Şimdi bu anlatılanları örnekle taçlandıralım.

Main.java
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");
  
  Personel p1=(Personel) context.getBean("pers1");
  p1.yazdir();

 }

}

Factory.java
package test;

public class Factory {

 
 public Personel PersonelUretici(){
  return new Personel();
 }
}

Personel.java
package test;

public class Personel {

 private String ad;
 private int yas;

 public Personel() {
 }

 public Personel(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("PERSONEL\n" 
    + "ad\t:\t" + ad 
    + "\nyas\t:\t"+yas);
 }
}

applicationContext.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"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">



 <bean id="beanF" class="test.Factory" />

 <bean id="pers1" factory-bean="beanF" factory-method="PersonelUretici">
  <property name="ad" value="enes" />
  <property name="yas" value="25" />
 </bean>

</beans>

spring factory bean factory method

Yorumlar

Bu blogdaki popüler yayınlar

JSP Ders04 - JSP Direktifleri

SQL Ders27 - INSERT INTO

SQL Ders43 - CONSTRAINTS | INDEX