subrutin
a sequence of programmer life

Advertisement

Membuat Program Pertama dengan Spring Framework (Bagian -2)

1 864

Dalam artikel sebelumnya, telah ditunjukan bagaimana membuat project sederhana dan memasukan dependensi Spring Framework. Kali ini akan dibahas bagaimana membuat implementasi dari Dependency Injection menggunakan Spring Framework.

Advertisement

Misalnya, dibuat sebuah Class bernama Employee yang terdiri dari beberapa property sebagai berikut

  • id
  • fullName
  • address
public class Employee {

    private String id;
    private String fullName;
    private String address;

    // getter setter dihilangkan

}

Class kedua adalah class Company, yang terdiri dari property employee sebagai berikut

public class Company {

    private Employee employee;

    public Company(Employee employee) {
        super();
        this.employee = employee;
    }

    //getter setter dihilangkan
    
    
    
    
}

 

Untuk membuat object baru, dari class Employee, cara pertama yang biasa dilakukan adalah dengan langsung membuat instance, menggunakan keyword new pada App.java. Berikutnya programmer tinggal membuat object company dengan menjadikan employee sebagai argumen constructor.

package com.subrutin.halospring;

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

public class App 
{
    public static void main( String[] args )
    {
        Employee employee = new Employee();
        employee.setId("1");
        employee.setFullName("Tedy Tri Saputro");
        employee.setAddress("Jalan Kusuma Bangsa");
        
        Company company = new Company(employee);
        
        System.out.println("Object employee yang dicreate by code :"+ employee.toString());
        System.out.println("Object company yang dicreate by code :"+ company.toString());

   }
}

 

Advertisement

Tidak ada yang salah dari program tersebut. Object employee dibuat, lalu masing – masing property diset langsung by code. baru kemudian object company dibuat dengan dependensi terhadap object employee.

Yang menjadi masalah adalah object company  tersebut memiliki dependensi terhadap object employee secara eksplisit, atau disebut sebagai tight coupling. Dalam paradigma pemrograman, tight coupling adalah sebuah technical debt, karena programmer tidak dapat mengetes object company secara terpisah tanpa melibatkan employee

Cara yang lain, adalah menggunakan Spring Framework, dimana object (kemudian disebut sebagai bean) akan dikelola daur hidupnya oleh Spring Container. Yang perlu dilakukan hanyalah menuliskan konfigurasi object yang akan dibentuk pada applicationContext.xml yang telah dibuat pada tutorial sebelumnya.

 

<?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 https://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context-4.3.xsd">

    <bean name="employee" class="com.subrutin.halospring.Employee">
        <property name="id" value="2"></property>
        <property name="fullName" value="Silvie"></property>
        <property name="address" value="Jalan Merdeka"></property>	
    </bean>
    
    <bean name="company" class="com.subrutin.halospring.Company">
        <constructor-arg ref="employee"></constructor-arg>
    </bean>
</beans>

 

Pada program App.java, programmer tinggal membaca ApplicationContext.xml menggunakan  method ClassPathXmlApplicationContext lalu tinggal memanggil name atau id  dari bean yang didefinisikan sebelumnya

//with spring
ApplicationContext appCtx = new ClassPathXmlApplicationContext("applicationContext.xml");
Employee employeeBean = (Employee) appCtx.getBean("employee");
Company companyBean = (Company) appCtx.getBean("company");

System.out.println("Object employee yang dicreate by Spring :"+ employeeBean.toString());
System.out.println("Object company yang dicreate by Spring :"+ companyBean.toString());

Jika program berhasil dijalankan, output console yang dihasilkan akan sebagai berikut

 

ApplicationContext pada baris 20 adalah nama interface  yang memuat implementasi dari Spring Container dan merupakan jantung dari Spring IoC. Pada bagian ini, Container tersebut membaca konfigurasi  bean yang telah didefinisikan pada applicationContext.xml

Sekilas memang inisiasi Object menggunakan Spring Framework lebih panjang dibandingkan membuat object dengan cara konvensional. Ya memang benar, untuk program kecil, Spring Framework akan cukup merepotkan, namun akan sangat memudahkan kerja Programmer dalam membangun aplikasi skala medium hingga besar di dunia Industri. Seiring dengan waktu, programmer akan mendapatkan feel bagaimana Spring Framework akan memudahkan seseorang dalam membangun sebuah aplikasi perangkat lunak berstandar industri

Source code yang dibahas pada tulisan ini dapat diakses melalui repositori Github di tautan ini.

advertisement

Get real time updates directly on you device, subscribe now.

1 Komen
  1. […] Tutorial Spring Framework – 3 : Membuat Program Pertama (Bagian -2) […]

Tinggalkan pesanan

Alamat email anda tidak akan disiarkan.