Kali ini penulis ingin mengajak anda untuk membuat sebuah aplikasi RESTful Web Service dengan menggunakan teknologi Spring MVC dan Hibernate.
RESTful merupakan salah satu dari jenis web service, dimana RESTful ini sendiri menggunakan pertukaran data antar state dengan menggunakan protokol HTTP (Hypertext Transfer Protocol). RESTful merupakan suatu gaya arsitektur perangkat lunak untuk pendistribusian sistem hipermedia seperti WWW. Istilah ini diperkenalkan pertama kalu pada tahun 2000 dengan disertai doktoral Roy Fielding yang merupakan salah seorang penulis utama spesifikasi HTTP.
Oke…teknologi RESTful ini sendiri dapat menggunakan beberapa format data sebagai pertukaran data yaitu JSON, XML dan lain - lain. Pada tutorial kali ini, penulis menggunakan format JSON.
Kita mulai dengan membuat project melalui terminal seperti berikut.
Silahkan buka project dengan IDE anda, disini saya menggunakan netbeans. Struktur Aplikasi penulis seperti ini.
buka file pom.xml, berikut adalah codingan untuk konfigurasinya.
Kita mulai dari class domain, disini saya membuat sebuah class dengan nama Makanan berikut adalah kodingannya.
Class Makanan merupakan class domain yang akan kita gunakan sebagai model di dalam konsep MVC. Class ini nantinya akan dimapping oleh hibernate. Terdapat 4 properti yaitu id makanan, nama makanan, harga makanan dan tanggal kadaluarsa. Kemudian kita beralih ke package repository, buat 2 class yaitu MakananRepository dan MakananRepositoryImpl. Class MakananRepository nantinya akan kita inject ke class MakananServiceImpl. Baiklah berikut adalah codingan dari class MakananRepository.
Class MakananRepositoryImpl akan melakukan implementasi terhadap class MakananRepository. Semua yang berurusan dengan query kita satukan di dalam class repository. Berikut adalah codingannya.
Bisa dilihat kita menggunakan annotation @Repository, annotation ini berfungsi untuk memanage bean - bean, sedangkan disana juga terdapat @Autowired yang berfungsi untuk melakukan inject ke bean sessionFactory. Kemudian dari SessionFactory kita dapat melakukan perintah CRUD. Tahap selanjutnya kita membuat lagi 2 class yaitu MakananService dan MakananServiceImpl. Untuk class MakananService sama seperti class MakananRepository. Sedangkan class MakananServiceImpl berikut codingannya.
Mirip dengan class MakananRepositoryImpl hanya saja disini kita menggunakan annotation @Service karena class ini merupakan bagian dari pada bisnis coding. Disana kita menggunakan annotation @Transactional yang berfungsi untuk menghandle transaction pada database, konsep ini dikenal dengan ‘AOP (Aspect Oriented Programming)’. Setelah selesai, kita buat lagi class MakananController, class ini yang akan berfungsi sebagai penerima request dan mengembalikan request, Berikut codingannya.
Wah makin banyak annotationnya :D ,Berikut adalah penjelasan singkatnya.
@RestController : Merupakan annotaion dari spring mvc yang khusus untuk RESTful sehingga dia akan langsung mengambalikan data yang di return dari sebuah method.
@RequestMapping : berfungsi sebagai mendeklarasikan URI yang akan kita gunakan.
@ResponseStatus : berfungsi untuk membuat response status yang kita inginkan.
@RequestBody : berfungsi untuk menerima request berupa JSON dari client.
@PathVariable : berfungsi untuk mengambil data yang ada pada path URI
Oke untuk class java nya telah selesai, kita beralih ke konfigurasi XML untuk sprng mvc dan hibernate. Buat folder webapp sejajar dengan folder java, dan resources, kemudian di dalamnya buat sebuah folder dengan nama WEB-INF. Di dalam folder ini tambahkan sebuah file jdbc.properties untuk konfigurasi database, berikut codingannya.
Kemudian buat sebuah file hibernate.cfg.xml untuk konfigurasi hibernate, berikut adalah codingannya.
Kodingan diatas telah dibahas pada tutorial Belajar Hibernate. Selanjutnya adalah kita membuat sebuah file lagi yaitu mvc-dispatcher-servlet.xml untuk konfigurasi spring mvc. Berikut kodingannya.
Berikut adalah penjelasan singkatnya.
tx:annotation-driven memberitahukan kepada spring bahwa kita mengaktifkan transaction dengan menggunakan annotation @Transactional.
context:property-placeholder untuk meload file konfigurasi database.
context:component-scan berfungsi untuk mendefinisikan class - class mana saja yang akan menggunakan annotation seperti @Repository, @Service, @Controller dan @RestController.
bean id="dataSource" merupakan bean yang berfungsi sebagai konfigurasi database.
bean id="sessionFactory" merupakan bean yang berfungsi untuk meload konfigurasi hibernate.
bean id="transactionManager" merupakan bean yang berfungsi sebagai transaction.
Untuk meload semua konfigurasi tersebut, buatlah sebuah file web.xml, kemudian masukkan codingan berikut.
Yang terakhir adalah buatlah sebuah file log4j.properties di dalam folder resources, berikut adalah codingannya.
Untuk menjalankannya dengan perintah mvc clean jetty:run mari kita lakukan uji coba dengan menggunakan Postman. Buka postman lalu lakukan uji coba dengan method POST untuk menyimpan data seperti ini.
Kemudian uji coba dengan menggunakan method GET untuk mengambil data
Kemudian uji coba dengan menggunakan method PUT untuk merubah data
Dan yang adalah uji coba dengan menggunakan method DELETE untuk menghapus data
Sekian tutorial membuat aplikasi resftful web service dengan teknologi spring mvc, hibernate dan Terima kasih :). Untuk source code lengkap, penulis publish di Belajar Spring MVC dan Hibernate.