Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.

Spring adalah kerangka kerja Java yang menggunakan wadah untuk membuat dan mengelola berbagai komponen aplikasi. Kontainer (sering disebut konteks aplikasi Spring) menghubungkan berbagai komponen dalam aplikasi menggunakan pola desain injeksi ketergantungan (DI). DI memungkinkan Anda untuk menggunakan objek di kelas dependen, tanpa membuat instance baru di dalam kelas dependen.

Jadi, daripada membiarkan setiap komponen membuat instance baru dari yang mereka andalkan, wadah Spring membuat dan memelihara instance dari setiap komponen yang dihostingnya. Kontainer ini kemudian menyuntikkan sebuah instance dari sebuah komponen ke semua komponen lain yang membutuhkannya.

Menjelajahi Fitur Inti Spring

Framework Spring memiliki sekitar 20 modul yang terorganisir dengan baik yang memainkan peran integral dalam kemampuannya untuk membuat dan mengelola aplikasi. Berdasarkan fitur utama modul ini, Anda dapat mengelompokkannya ke dalam lima kategori:

instagram viewer

  • Wadah Inti
  • Akses/Integrasi Data
  • Web
  • Pemrograman dan Instrumentasi Berorientasi Aspek
  • Tes

Wadah Musim Semi

Spring menggunakan wadah untuk membuat dan mengelola berbagai komponen (yang disebut kacang) dari suatu aplikasi. Kontainer dapat diakses melalui antarmuka ApplicationContext Spring, yang memungkinkan Anda membuat instance, mengonfigurasi, dan merakit objek (atau kacang). Kontainer Spring dapat menjalankan fungsinya karena bantuan metadata konfigurasi.

Metadata konfigurasi ini dapat memiliki beberapa bentuk yang berbeda, tetapi bentuk tipikalnya adalah XML. Selain kacang, wadah Spring juga terdiri dari inti, konteks, dan modul ekspresi.

Akses/Integrasi Data Pegas

Aspek akses/integrasi data dari kerangka pegas terdiri dari beberapa submodul: JDBC, ORM, OXM, JMS, dan transaksi. Modul-modul ini bekerja sama untuk mengelola data apa pun yang digunakan aplikasi Anda.

Web musim semi

Fitur web dari aplikasi Spring menyediakan integrasi berorientasi web untuk aplikasi Anda. Selain integrasi berorientasi web, Spring menyediakan modul servlet web. Modul servlet web bertanggung jawab atas Spring implementasi model-view-controller (MVC)..

Pemrograman Berorientasi Aspek Pegas (AOP)

Kerangka kerja AOP Spring adalah salah satu komponen utamanya. Meskipun kerangka kerja AOP tidak penting untuk fungsi wadah Spring, itu melengkapi wadah dengan menjadi solusi middleware yang mumpuni. Salah satu fitur utama kerangka kerja AOP adalah menyediakan layanan perusahaan deklaratif untuk aplikasi Anda, yaitu manajemen transaksi deklarasi.

Manajemen transaksi deklaratif adalah pendekatan yang diinginkan untuk pengembangan perangkat lunak karena memiliki dampak minimal pada kode aplikasi.

Tes Musim Semi

Spring sangat mementingkan pengujian aplikasi. Modul pengujiannya mendukung pengujian integrasi dan pengujian unit menggunakan JUnit atau TestNG.

Membuat Aplikasi Musim Semi

Ada beberapa cara untuk membuat boilerplate untuk aplikasi Spring yang baru. Berbagai pendekatan tersebut antara lain:

  • Dari aplikasi web (atau Spring Initializr) di situs resmi Spring.
  • Secara manual membuat struktur direktori proyek dan membangun spesifikasi.
  • Dengan Spring Tool Suite.
  • Dari baris perintah dengan antarmuka baris perintah Spring Boot.
  • Dengan Eclipse IDE.
  • Dengan IDE IntelliJ IDEA.

Pendekatan yang paling populer adalah Spring Initializr:

Seperti yang Anda lihat dari gambar di atas, Anda harus membuat beberapa keputusan. Yang pertama adalah jenis proyek yang ingin Anda inisialisasi. Spring menyediakan tiga opsi: Gradle untuk Groovy, Gradle untuk Kotlin, atau Maven. Contoh aplikasi ini akan menggunakan proyek Maven.

Opsi lain yang harus Anda pilih adalah bahasa (Java), versi Spring Boot yang ingin Anda gunakan, dan metadata proyek. Spring sudah memiliki beberapa data tiruan di lima bidangnya yang akan membantu Anda membuat contoh aplikasi. Namun, Anda perlu memperbarui bidang ini dengan data khusus proyek, karena metadata ini akan menjelaskan aplikasi Spring Anda termasuk kacang Spring dan metodenya.

Selanjutnya, Anda harus memilih kemasan yang Anda inginkan untuk file Anda (jar atau perang). Kemudian Anda dapat memilih versi Java yang Anda miliki di perangkat Anda. Keputusan terakhir yang harus Anda buat adalah jenis dependensi yang Anda inginkan untuk aplikasi Anda.

Spring menyediakan beberapa dependensi yang dapat Anda gunakan untuk menambahkan properti ke aplikasi Anda. Untuk menambahkan dependensi baru ke aplikasi Anda, cukup klik tombol tambahkan dependensi di sebelah kanan Spring Initializr. Tindakan ini akan menghasilkan overlay berikut di layar Anda:

Untuk contoh aplikasi ini, satu-satunya dependensi yang Anda perlukan adalah Spring Web. Ketergantungan ini memungkinkan Anda membangun aplikasi web menggunakan arsitektur MVC. Setelah Anda memilih semua dependensi yang ingin Anda gunakan dalam aplikasi Anda, lanjutkan dengan menghasilkan klik. Ini akan mengunduh boilerplate proyek untuk Anda.

Sekarang Anda memiliki proyek Spring Boot (yang merupakan salah satu perpustakaan Spring). Langkah terakhir adalah mengimpor proyek ke IDE pilihan Anda. Proyek Musim Semi Anda akan memiliki struktur proyek berikut:

Ini adalah struktur proyek Maven yang normal, dan ada beberapa file penting yang perlu Anda ketahui.

  • Pom.xml: Ini berisi data konfigurasi aplikasi Spring.
  • OnlineShopaholicsApplication.java: Ini adalah kelas utama Spring Boot, yang menjalankan aplikasi.
  • OnlineShopaholicsApplicationTest.java: Ini adalah Tes JUnit kelas yang memastikan bahwa konteks (atau kontainer) aplikasi Spring dimuat dengan benar.

Menjalankan Aplikasi Musim Semi

Kelas bootstrap Spring, yang dalam hal ini adalah kelas OnlineShopaholicsApplication, memiliki kode awal sebagai berikut:

kemasan com.onlineshopaholics;

impororg.springframework.boot.Aplikasi Musim Semi;
impororg.springframework.boot.autokonfigurasi.SpringBootApplication;

@SpringBootApplication
publikkelasAplikasi Shopaholic Online{
publikstatisruang kosongutama(String[] argumen){
SpringApplication.run (OnlineShopaholicsApplication.kelas, argumen);
}
}

Salah satu aspek terpenting dari kode di atas adalah @SpringBootApplication anotasi, yang merupakan anotasi komposit yang memungkinkan aplikasi Anda mengakses fitur dari tiga anotasi lainnya:

  • @EnableAutoconfiguration: Anotasi ini mengaktifkan konfigurasi otomatis Spring Boot. Ini berarti ia memberi tahu Spring boot untuk mengonfigurasi komponen apa pun yang menurutnya perlu berfungsi oleh aplikasi Anda.
  • @ComponentScan: Anotasi ini memungkinkan Anda mengaktifkan pemindaian komponen. Fitur ini penting, memungkinkan Spring untuk secara otomatis menemukan dan mendaftarkan komponen beranotasi lainnya untuk digunakan oleh konteks (atau wadah) aplikasi Spring.
  • @SpringBootConfiguration: Ini adalah bentuk khusus dari anotasi @Configureation, yang memungkinkan Anda mendaftarkan kacang (atau objek) dalam konteks aplikasi Spring.

Aspek penting lainnya dari kode di atas adalah utama() metode, itu mengeksekusi aplikasi Anda. Saat aplikasi dijalankan sekarang, itu hanya memulai server. Jadi, jika Anda ingin menambahkan lebih banyak fungsionalitas ke aplikasi, Anda harus memperbarui kodenya:

kemasan com.onlineshopaholics;

impororg.springframework.boot.Aplikasi Musim Semi;
impororg.springframework.boot.autokonfigurasi.SpringBootApplication;
impororg.springframework.web.mengikat.anotasi.GetMapping;
impororg.springframework.web.mengikat.anotasi.RequestParam;
impororg.springframework.web.mengikat.anotasi.RestController;

@SpringBootApplication
@RestController
publikkelasAplikasi Shopaholic Online{
publikstatisruang kosongutama(String[] argumen){
SpringApplication.run (OnlineShopaholicsApplication.kelas, argumen);
}

@Dapatkan Pemetaan("/pelanggan")
publik Rangkaian Selamat datang(@RequestParam (nilai = "nama", Nilai default = "Pelanggan") Rangkaian nama) {
kembaliRangkaian.format("Selamat datang %s!", nama);
}
}

Aplikasi Spring Boot sekarang memiliki tiga anotasi baru:

  • @RestController: Anotasi ini menandai kelas sebagai pengontrol, jadi setiap metode di kelas di atas (selain main()) akan mengembalikan objek domain alih-alih tampilan.
  • @GetMapping: Anotasi ini memetakan permintaan HTTP GET ke metode header tertentu. Jadi, setiap kali Anda membuat permintaan untuk “/customer” di browser, metode Welcome() akan menangani permintaan tersebut dengan mengembalikan nilai string.
  • @RequestParam: Anotasi ini menunjukkan bahwa parameter metode harus terikat ke parameter permintaan web.

Dengan kode yang diperbarui, Spring Aplikasi Shopaholic Online sekarang memiliki halaman pelanggan yang dapat Anda lihat di browser Anda. Menjalankan aplikasi akan memulai server dan menghasilkan keluaran di konsol.

Ada banyak informasi penting dalam output. Ini memberi tahu Anda bahwa server sedang berjalan, memberi tahu Anda berapa lama proses inisialisasi berlangsung, dan memberi tahu Anda di port mana aplikasi berjalan (8080, secara default). Oleh karena itu, jika Anda menavigasi ke http://localhost: 8080/pelanggan Anda akan melihat output berikut di browser Anda:

Sekarang Anda Dapat Merancang Tampilan Aplikasi Anda

File penting lainnya dalam struktur proyek yang mungkin Anda perhatikan adalah template map. Idealnya, Aplikasi Shopaholic Online kelas harus berfungsi sebagai pengontrol, yang menangani permintaan untuk tampilan yang berbeda. Oleh karena itu, dalam aplikasi yang lengkap, kelas pengontrol tidak boleh berisi teks yang akan ditampilkan dalam tampilan permintaannya.

Sebagai gantinya, Anda perlu membuat file template menggunakan HTML dan menempatkannya di dalam folder template aplikasi Spring Anda.