kutakKetikBikinPusing


Spring Bag 1
Juli 6, 2007, 12:32 pm
Filed under: Spring

Untuk seorang java developer tentu sudah tidak asing lagi dengan framework yang satu ini, tapi sengaja saya bahas untuk para newbie yang baru aja terjun ke dunia java, untuk para senior sekedar mengingatkan kembali The Basic of Spring.

Tunggu dulu, Spring apaan tuch?, Spring adalah framework java yang bersifat light-weight, lebih jelasnya liat aja di sini. Spring sangat bagus untuk pembangunan aplikasi kelas enterprise, spring dapat digunakan untuk transaction management, RMI atau web service, fasilitas mailing dan persistensi data.

Fitur yang disediain Spring:

  • Transaction Management.
  • JDBC Exception Handling.
  • Integrasi dengan Hibernate, JDO, iBATIS, dan Oracle TopLink.
  • AOP Framework.
  • MVC Framework.

Kayanya gk usah saya jelasin lagi kalo mau tau lebih banyak kunjungi aja website resminya di sini.

OK, kita mulai aja dengan contoh sederhana menampilkan HelloWorld dengan Spring.

  • Download Spring-nya dulu disini. Kemudian extract di c:\Spring(kamu bisa extract dimana aja tapi mendingan ikutin aja cara saya dulu). setelah di extract kamu bisa liat struktur direktorinya kaya gini:
  • Spring
    • aspectj
    • dist
    • docs
    • lib
    • mock
    • samples
    • src
    • test
    • tiger

Struktur direktorinya mungkin berbeda, disini saya menggunakan spring versi 2.0.

  • Tentunya kamu udah punya Java(J2SDK), yang ter-install di komputer kamu kan?, kalo belum, install dulu deh, kamu bisa liat petunjuknya disini.
  • Buat workspace, sebuah direktori yang nantinya digunin buat nyimpen source code yang kita buat.

C:\SpringHelloworld

  • Copy spring.jar dari c:\Spring\dist ke c:\SpringHelloworld
  • Copy commons-logging.jar dari c:\Spring\lib\jakarta-commons ke c:\SpringHelloword
  • Untuk membuat aplikasi dengan Spring kita perlu membuat file-file berikut:
  • Interface yang mendefinisikan fungsi/method.
  • Implementasi yang menyimpan property, setter dan getter dari fungsi(method).
  • XML untuk konfigurasi Spring.
  • Program client yang akan memanggil fungsi(method).
  • The Code. Buat file seperti ini dan taro semua file di c:\SpringHelloworld
  • Helloworld.java

public interface Helloworld

{

public String sayHello(String message);

}

  • HelloworldImpl.java

public class HelloworldImpl implements Helloworld{

private String greeting;

public HelloworldImpl() {

}

public HelloworldImpl(String message)

{

greeting=message;

}

public String sayHello(String theMessage)

{

return greeting+theMessage;

}

public void setGreeting(String message)

{

greeting=message;

}

}

  • HelloWorld.xml

<?xml version=”1.0″ encoding=”UTF-8″?>

<!DOCTYPE beans PUBLIC “-//SPRING//DTD BEAN//EN” “http://www.springframework.org/dtd/spring-beans.dtd”>

<beans>

<bean id=”Helloworld” class=”HelloworldImpl”>

<property name=”greeting”>

<value>Berhasil…</value>

</property>

</bean>

</beans>

  • HelloworldClient.java

import java.io.*;

import org.springframework.beans.factory.*;

import org.springframework.beans.factory.xml.*;

import org.springframework.core.io.*;

public class HelloWorldClient

{

public static void main(String args[]) throws Exception

{

try

{

System.out.println(“please Wait.”);

Resource res = new ClassPathResource(“Helloworld.xml”);

BeanFactory factory = new XmlBeanFactory(res);

HelloWorld bean1 = (HelloWorld)factory.getBean(“HelloWorld”);

String s = bean1.sayHello(args[0]);

System.out.println(s);

}

catch(Exception e1)

{

System.out.println(“”+e1);

}

}

}

  • Untuk menjalankan aplikasi HelloWorld ini buka command prompt, masuk ke direktori c:\SpringHelloworld, kemudian ketik perintah di bawah ini:
    • c:\ SpringHelloworld >javac Helloworld.java
    • c:\ SpringHelloworld >javac HelloworldImpl.java
    • c:\ SpringHelloworld >javac HelloworldClient.java
    • c:\ SpringHelloworld >java HelloworldClient “Helloworld”
  • Hasilnya:

Jul 6, 2007 5:10:46 PM org.springframework.core.CollectionFactory <clinit>

INFO: JDK 1.4+ collections available

Jul 6, 2007 5:10:47 PM org.springframework.beans.factory.xml.XmlBeanDefinitionRe

ader loadBeanDefinitions

INFO: Loading XML bean definitions from class path resource [Helloworld.xml]

Berhasil…Helloworld

Bukan sulap bukan sihir, kalo hasilnya seperti di atas berarti anda berhasil, kalo enggak bukan salah saya, cek lagi dari awal.

  • Penjelasan:

HelloworldImpl mengimplementasikan interface dari Helloworld, walaupun tidak harus selalu mengenkapsulasi implementasi dibelakang interface sangat dianjurkan untuk memisahkan implementasi dari interface.

HelloworldImpl mempunyai satu property greeting, property ini dapat diubah nilainya melalui 2 cara,

  • Setter property
  • Constructor

File XML Helloworld.xml mendeklarasikan instance dari HelloworldImpl.java pada spring container dan mengkonfigurasi property greeting dengan nilai “Berhasil…”. Tag <beans> menunjukan root element sedangkan tag <bean> digunakan untuk memberitahu spring container tentang class dan cara untuk mengkonfigurasinya. Atribut id menunjukan nama interface dan class menunjukan nama class-nya.

Tag <property> digunakan untuk mengubah/memberikan nilai property, disini spring akan memanggil method setGreeting(), dengan memberikan nilai sesuai pada tag <value>.

Spring Container akan membuat instance HelloworldImpl berdasarkan definisi pada XML seperti:

HelloworldImpl Helloworld = new HelloworldImpl();

Helloworld.setGreeting(“Berhasil…”);

Sama seperti pada konfigurasi XML:

<bean id=”Helloworld” class=”HelloworldImpl”>

<property name=”greeting”>

<value>Berhasil…</value>

</property>

</bean>

  • Kurang lebih inilah yang dinamakan konsep IoC atau Dependency Injection

Tinggalkan sebuah Komentar sejauh ini
Tinggalkan komentar



Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s



Ikuti

Get every new post delivered to your Inbox.