Membuat Service Mahasiswa
Last updated
Was this helpful?
Last updated
Was this helpful?
Setelah melewati langkah pembuatan class Dao
selanjutnya adalah membuat class service. Class service ini berfungsi sebagai bisnis proses atau logic dalam aplikasi yang akan kita buat misalnya seperti transaction, cache, hash password, perhitungan dan sebagainya. Ketika kita menggunakan spring dan hibernate maka class service dan class dao akan banyak sekali digunakan, di dalam aplikasi skala enterprise akan ada ratusan class service dan class dao tersebut, tujuannya adalah untuk mempermudah pengembangan aplikasi dan aplikasi terlihat lebih rapi. Silahkan buat sebuah class interface dengan nama MahasiswaService
seperti berikut ini.
kemudian masukkan codingan seperti berikut ini.
Sama seperti class dao
kita akan membuat class lagi untuk melakukan implementasi class MahasiswaService
, silahkan buat sebuah class dengan nama MahasiswaServiceImpl
seperti berikut.
kemudian ubah codingan menjadi seperti berikut.
Pada class ini kita menggunakan annotation @Service
menandakan bahwa ini adalah class service, di dalam annotation @Service
terdapat nama MahasiswaService
tujuannya adalah nama ini akan digunakan sebagai sebuah bean dimana bean ini nantikan akan diinject ke kelas yang membutuhkannya.
Annotation @Transactional
kita gunakan sebagai transaction management, berbeda sekali dengan class dao
tanpa spring, kita diharuskan membuat transaction dan try catch secara manual. Dengan menggunakan spring maka transaction akan dihandle oleh spring dengan menggunakan annotation @Transactional
, setiap method yang akan dieksekusi secara otomatis spring akan melakukan transaction atau sering disebut dengan Declarative Transaction
. Untuk membuat Declarative Transaction
maka spring menggunakan konsep AOP (aspect oriented programming)
.
Annotation @Transactional
pada bagian class terdapat perintah readOnly = true
berfungsi untuk method yang tidak melakukan manipulasi data seperti method getMahasiswa
dan getMahasiswas
sedangkan untuk method save
, update
dan delete
kita hanya menggunakan annotation @Transactional
karena secara default annotation @Transactional
dikhususkan untuk method yang melakukan query sehingga default perintahnya adalah readOnly = false
.