Membuat Service Mahasiswa

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.

package com.belajar.springHibernate.service;

import com.belajar.springHibernate.model.Mahasiswa;
import java.util.List;

/**
 * @Author Rizki Mufrizal
 * @Since Dec 15, 2015
 */
public interface MahasiswaService {

    public void save(Mahasiswa mahasiswa);

    public void update(Mahasiswa mahasiswa);

    public void delete(Mahasiswa mahasiswa);

    public Mahasiswa getMahasiswa(String npm);

    public List<Mahasiswa> getMahasiswas();
}

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.

Last updated

Was this helpful?