Spring : Cakupan/Scope Spring Bean – singleton

Oleh : Reza Ervani

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

Scope Singleton

Jika scope diset ke singleton, kontainer IoC Spring membuat tepat satu instance dari objek yang didefinisikan oleh definisi beannya. Instance tunggal tersebut disimpan di suatu cache dari beans singleton bersangkutan, dan semua request dan referensi berikutnya untuk nama tersebut akan mengambil cache objek tersebut.

Scope bawaan adalah selalu singleton, meskipun saat anda membuutuhkan satu dan hanya satu instance dari suatu bean, anda dapat meset properti scope ke singleton pada file konfigurasi bean, sebagaimana akan ditunjukkan di bawah :

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);
}
}

Isi dari file MainApp.java adalah sebagai berikut :


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 adalah isi file Beans.xml yang meminta scope singleton


<?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="singleton">
   </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 : I’m object A

About Reza Ervani 430 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.