Pengenalan kepada Rangka Kerja Spring

Pengenalan kepada Rangka Kerja Spring
Pembaca seperti anda membantu menyokong MUO. Apabila anda membuat pembelian menggunakan pautan di tapak kami, kami mungkin mendapat komisen ahli gabungan. Baca Lagi.

Spring ialah rangka kerja Java yang menggunakan bekas untuk mencipta dan mengurus komponen aplikasi yang berbeza. Bekas (sering dipanggil konteks aplikasi Spring) menghubungkan komponen berbeza dalam aplikasi menggunakan corak reka bentuk suntikan kebergantungan (DI). DI membenarkan anda menggunakan objek dalam kelas bergantung, tanpa membuat contoh baharunya dalam kelas bergantung.





MAKEUSEOF VIDEO OF THE DAY

Jadi, daripada membenarkan setiap komponen mencipta tika baharu bagi yang mereka harapkan, bekas Spring mencipta dan mengekalkan tika bagi setiap komponen yang dihoskannya. Bekas ini kemudian menyuntik contoh komponen ke dalam semua komponen lain yang memerlukannya.





Meneroka Ciri Teras Spring

Rangka kerja Spring mempunyai sekitar 20 modul tersusun yang memainkan peranan penting dalam keupayaannya untuk mencipta dan mengurus aplikasi. Berdasarkan ciri utama modul ini, anda boleh mengumpulkannya kepada lima kategori:





cara menghantar mesej peribadi di aplikasi youtube
  • Bekas Teras
  • Akses/Penyatuan Data
  • Web
  • Pengaturcaraan dan Instrumentasi Berorientasikan Aspek
  • Ujian

Bekas Spring

Spring menggunakan bekas untuk mencipta dan mengurus komponen yang berbeza (yang ia panggil kacang) bagi aplikasi. Bekas boleh diakses melalui antara muka ApplicationContext Spring, yang membolehkan anda membuat instantiate, mengkonfigurasi dan memasang objek (atau kacang). Bekas Spring boleh melaksanakan fungsinya kerana bantuan metadata konfigurasi.

Metadata konfigurasi ini boleh mempunyai beberapa bentuk yang berbeza, tetapi bentuk lazimnya ialah XML. Selain kacang, bekas Spring juga terdiri daripada teras, konteks dan modul ekspresi.



Akses/Integrasi Data Spring

Aspek akses/integrasi data rangka kerja spring terdiri daripada beberapa submodul: JDBC, ORM, OXM, JMS dan transaksi. Modul ini berfungsi bersama untuk mengurus sebarang data yang digunakan oleh aplikasi anda.

Spring Web

Ciri web aplikasi Spring menyediakan penyepaduan berorientasikan web untuk aplikasi anda. Selain penyepaduan berorientasikan web, Spring menyediakan modul servlet web. Modul servlet web bertanggungjawab untuk Spring pelaksanaan model-view-controller (MVC). .





Pengaturcaraan Berorientasikan Aspek Musim Bunga (AOP)

Rangka kerja AOP Spring adalah satu lagi komponen utamanya. Walaupun rangka kerja AOP tidak penting untuk fungsi kontena Spring, ia melengkapkan bekas dengan menjadi penyelesaian perisian tengah yang berkebolehan. Salah satu ciri utama rangka kerja AOP ialah ia menyediakan perkhidmatan perusahaan perisytiharan untuk aplikasi anda, iaitu pengurusan transaksi perisytiharan.

Pengurusan urus niaga perisytiharan adalah pendekatan yang wajar untuk pembangunan perisian kerana ia mempunyai kesan yang minimum pada kod aplikasi.





Ujian Musim Bunga

Spring meletakkan kepentingan penting pada ujian aplikasi. Modul ujiannya menyokong ujian integrasi dan ujian unit menggunakan JUnit atau TestNG.

Mencipta Aplikasi Spring

Terdapat beberapa cara untuk mencipta boilerplate untuk aplikasi Spring baharu. Pelbagai pendekatan termasuk:

  • Daripada aplikasi web (atau Spring Initializr) di tapak web rasmi Spring.
  • Secara manual mencipta struktur direktori projek dan membina spesifikasi.
  • Dengan Suite Alat Spring.
  • Daripada baris arahan dengan antara muka baris arahan Spring Boot.
  • Dengan IDE Eclipse.
  • Dengan IntelliJ IDEA IDE.

Pendekatan yang paling popular ialah Spring Initializr:

  Spring Initializr

Seperti yang anda boleh lihat daripada imej di atas, anda akan mempunyai beberapa keputusan untuk dibuat. Yang pertama ialah jenis projek yang anda ingin mulakan. Spring menyediakan tiga pilihan: Gradle untuk Groovy, Gradle untuk Kotlin atau Maven. Aplikasi sampel ini akan menggunakan projek Maven.

Pilihan lain yang anda mesti pilih ialah bahasa (Java), versi Spring Boot yang anda mahu gunakan dan metadata projek. Spring sudah mempunyai beberapa data tiruan dalam lima medannya yang akan membantu anda membuat aplikasi sampel. Walau bagaimanapun, anda perlu mengemas kini medan ini dengan data khusus projek, kerana metadata ini akan menerangkan aplikasi Spring anda termasuk kacang Spring dan kaedahnya.

  Metadata Spring Initalizr

Seterusnya, anda perlu memilih pembungkusan yang anda mahukan fail anda (balang atau perang). Kemudian anda boleh memilih versi Java yang anda ada pada peranti anda. Keputusan akhir yang anda perlu buat ialah jenis kebergantungan yang anda inginkan untuk aplikasi anda.

Spring menyediakan beberapa kebergantungan yang boleh anda gunakan untuk menambah sifat pada aplikasi anda. Untuk menambah kebergantungan baharu pada aplikasi anda, cuma klik butang tambah kebergantungan di sebelah kanan Spring Initializr. Tindakan ini akan menjana tindanan berikut pada skrin anda:

di mana saya boleh memuat turun buku etext percuma
  Tindanan Spring Initializr

Untuk aplikasi sampel ini, satu-satunya kebergantungan yang anda perlukan ialah Spring Web. Kebergantungan ini membolehkan anda membina aplikasi web menggunakan seni bina MVC. Selepas anda memilih semua kebergantungan yang anda ingin gunakan dalam aplikasi anda, teruskan jana klik. Ini akan memuat turun boilerplate projek untuk anda.

Kini anda mempunyai projek Spring Boot (yang merupakan salah satu daripada perpustakaan Spring). Langkah terakhir ialah mengimport projek ke dalam IDE pilihan anda. Projek Spring anda akan mempunyai struktur projek berikut:

  Struktur projek Spring Boot

Ini ialah struktur projek Maven biasa, dan terdapat beberapa fail penting yang perlu anda kenali.

  • Pom.xml: Ini mengandungi data konfigurasi aplikasi Spring.
  • OnlineShopaholicsApplication.java: Ini ialah kelas utama Spring Boot, yang melaksanakan aplikasi.
  • OnlineShopaholicsApplicationTest.java: Ini ialah a Ujian JUnit kelas yang memastikan konteks (atau bekas) aplikasi Spring dimuatkan dengan betul.

Menjalankan Aplikasi Spring

Kelas bootstrap Spring, yang dalam kes ini ialah kelas OnlineShopaholicsApplication, mempunyai kod awal berikut:

 package com.onlineshopaholics; 

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class OnlineShopaholicsApplication {
    public static void main(String[] args) {
        SpringApplication.run(OnlineShopaholicsApplication.class, args);
    }
}

Salah satu aspek terpenting kod di atas ialah @SpringBootApplication anotasi, iaitu anotasi komposit yang membenarkan aplikasi anda mengakses ciri tiga anotasi lain:

  • @EnableAutoconfiguration: Anotasi ini mendayakan konfigurasi automatik Spring Boot. Ini bermakna ia memberitahu but Spring untuk mengkonfigurasi mana-mana komponen yang difikirkannya perlu aplikasi anda berfungsi.
  • @ComponentScan: Anotasi ini membolehkan anda mendayakan pengimbasan komponen. Ciri ini penting, ia membolehkan Spring menemui dan mendaftarkan komponen beranotasi lain secara automatik untuk digunakan oleh konteks aplikasi Spring (atau bekas).
  • @SpringBootConfiguration: Ini ialah bentuk khusus anotasi @Configureation, yang membolehkan anda mendaftarkan kacang (atau objek) dalam konteks aplikasi Spring.

Aspek penting lain kod di atas ialah utama() kaedah, ia melaksanakan permohonan anda. Apabila aplikasi dilaksanakan sekarang, ia hanya memulakan pelayan. Jadi, jika anda ingin menambah lebih banyak fungsi pada aplikasi, anda perlu mengemas kini kod:

cara menjalankan program mac di windows
 package com.onlineshopaholics; 

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class OnlineShopaholicsApplication {
    public static void main(String[] args) {
        SpringApplication.run(OnlineShopaholicsApplication.class, args);
    }

    @GetMapping("/customer")
    public String Welcome(@RequestParam(value = "name", defaultValue = "Customer") String name) {
        return String.format("Welcome %s!", name);
    }
}

Aplikasi Spring Boot kini mempunyai tiga anotasi baharu:

  • @RestController: Anotasi ini menandakan kelas sebagai pengawal, jadi setiap kaedah dalam kelas di atas (selain daripada main()) akan mengembalikan objek domain dan bukannya pandangan.
  • @GetMapping: Anotasi ini memetakan permintaan HTTP GET ke kaedah pengepala tertentu. Jadi, setiap kali anda membuat permintaan untuk '/customer' dalam penyemak imbas, kaedah Welcome() akan mengendalikan permintaan dengan mengembalikan nilai rentetan.
  • @RequestParam: Anotasi ini menunjukkan bahawa parameter kaedah harus terikat pada parameter permintaan web.

Dengan kod yang dikemas kini Spring anda OnlineShopaholicsApplication kini mempunyai halaman pelanggan yang boleh anda lihat dalam penyemak imbas anda. Melaksanakan aplikasi akan memulakan pelayan dan menghasilkan output dalam konsol.

Terdapat banyak maklumat penting dalam output. Ia memberitahu anda bahawa pelayan sedang berjalan, ia memberitahu anda berapa lama proses pemulaan mengambil masa, dan ia memberitahu anda port yang dijalankan oleh aplikasi (8080, secara lalai). Oleh itu, jika anda menavigasi ke http://localhost:8080/customer anda akan melihat output berikut dalam penyemak imbas anda:

  Output pelayar aplikasi musim bunga

Kini Anda Boleh Reka Bentuk Paparan Aplikasi Anda

Satu lagi fail penting dalam struktur projek yang mungkin anda perhatikan ialah templat folder. Sebaik-baiknya, OnlineShopaholicsApplication kelas harus berfungsi sebagai pengawal, yang mengendalikan permintaan untuk pandangan yang berbeza. Oleh itu, dalam aplikasi lengkap, kelas pengawal tidak seharusnya mengandungi teks yang akan dipaparkan dalam paparan permintaannya.

Sebaliknya, anda perlu mencipta fail templat menggunakan HTML dan meletakkannya dalam folder templat aplikasi Spring anda.