Spring : Cakupan/Scope Spring Bean – prototype

Oleh : Reza Ervani

بسم الله الرحمن الرحيم

scope prototype :

Jika scope diset ke prototype, kontainer IoC Spring membuat instance bean yang barus setiap kali permintaan untuk bean tersebut diterima. Jadi, gunakan scope prototype untuk semua bean yang bersifat state-full dan gunakan scope singleton untuk bean yang bersifat stateless

Untuk mendefinisikan scope prototype, kita dapat menset properti di file konfigurasi bean seperti berikut :


<!-- Definisi bean dengan scope prototype -->
<bean id="..." class="..." scope="prototype">
    <!-- kolaborator dan konfigurasi bean ditempatkan disini -->
</bean>

Contoh :

Taruh kata kita menggunakan Eclipse IDE dan mengikuti langkah-langkah berikut untuk membuat aplikasi Spring :

  1. Buat sebuah project dengan nama ContohSpring dan buat paket com.eclipseprogramming dibawah folder src pada project yang dibuat
  2. Tambahkan pusataka Spring yang dibutuhkan menggunakan Add External JAR
  3. Buat class Java HelloWorld dan MainApp dibawah paket com.eclipseprogramming
  4. Buat file konfigurasi beans Beans.xml dibawah folder src
  5. Langkah terakhir adalah membuat konten seluruh file java dan konfigurasi Bean dan menjalankan aplikasinya sebagaimana dijelaskan dibawah ini :

Isi dari file HelloWorld.java adalah seperti berikut :


package com.eclipseprogramming;

public class HelloWorld {
   private String message;

   public void setMessage(String message){
      this.message  = message;
   }

   public void getMessage(){
      System.out.println("Your Message : " + message);
   }
}

Following is the content of the MainApp.java file:


package com.eclipseprogramming;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {
   public static void main(String[] args) {
      ApplicationContext context =
             new ClassPathXmlApplicationContext("Beans.xml");

      HelloWorld objA = (HelloWorld) context.getBean("helloWorld");

      objA.setMessage("I'm object A");
      objA.getMessage();

      HelloWorld objB = (HelloWorld) context.getBean("helloWorld");
      objB.getMessage();
   }
}

Berikut ini adalah konfigurasi Beans.xml yang dibutuhkan oleh scope prototype :


<?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-3.0.xsd">

   <bean id="helloWorld" class="com.eclipseprogramming.HelloWorld"
      scope="prototype">
   </bean>

</beans>

Setelah kita selesai membuat sumber dan file konfigurasi bean, mari kita jalankan aplikasi tersebut. Jika tidak ada hambatan maka akan muncul dua pesan berikut ini :

Your Message : I’m object A
Your Message : null

About Reza Ervani 426 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.