CodeGym /Blog Java /rawak /Bahagian 8. Mari kita tulis aplikasi kecil menggunakan Sp...
John Squirrels
Tahap
San Francisco

Bahagian 8. Mari kita tulis aplikasi kecil menggunakan Spring Boot

Diterbitkan dalam kumpulan
Bahan ini adalah bahagian penutup siri "Pengenalan kepada Pembangunan Perusahaan". Artikel sebelumnya: Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 1Mari kita lihat pelaksanaan MVC yang paling mudah menggunakan Spring MVC sebagai contoh. Untuk melakukan ini, kami akan menulis aplikasi Hello World kecil menggunakan Spring Boot. Saya akan memberi anda arahan langkah demi langkah, supaya anda boleh mengulangi semuanya sendiri. Pertama, kami akan menulis aplikasi kecil, dan kemudian kami akan menganalisisnya.

Langkah 1. Mencipta aplikasi Spring Boot dalam IntelliJ IDEA.

Gunakan Fail -> Baharu -> Projek… untuk mencipta projek baharu. Dalam tetingkap yang terbuka, dalam menu sebelah kiri, pilih Spring Initializr dan pilih Project SDK. Biarkan lalai untuk pilihan URL Perkhidmatan Initializr. Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 2Klik butang "Seterusnya". Dalam tetingkap seterusnya, kita perlu memilih tetapan projek. Kami akan mengadakan projek Maven. Pilih Projek Maven sebagai jenis. Isi medan Kumpulan dan Artifak Klik Seterusnya. Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 3Dalam tetingkap seterusnya, kita perlu memilih komponen Spring Framework yang akan kita gunakan. Dua sudah cukup untuk kita:
  • Spring Web ialah komponen yang membolehkan kami membuat aplikasi web. Komponen ini termasuk Spring MVC.
  • Thymeleaf ialah enjin templat kami. Ini adalah perkara yang membolehkan kami menghantar data dari Java ke halaman HTML
Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 4Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 5Dalam tetingkap seterusnya, pilih nama dan lokasi projek dalam sistem fail: Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 6Klik butang "Selesai". Projek itu dibuat. Kami berakhir dengan struktur projek berikut: Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 7Di sini kami berminat dengan 2 fail: pom.xml (deskriptor penempatan). Perkara ini membolehkan anda mengimport perpustakaan dengan cepat dan mudah daripada rangka kerja yang berbeza ke dalam projek kami. Ia juga di mana kami mengkonfigurasi cara aplikasi kami dibina. Aplikasi kami dibina menggunakan Maven, dan pom.xml ialah fail konfigurasi untuk sistem binaan ini. Kelas Java ialah MvcDemoApplication. Ini adalah kelas utama aplikasi kami. Kami akan melancarkan projek Spring Boot kami daripadanya. Untuk memulakan, jalankan kaedah utama kelas ini. Berikut ialah kod untuk kelas ini, serta fail pom.xml: MvcDemoApplication:

@SpringBootApplication
public class MvcDemoApplication {

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

}
pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.codegym/groupId>
    <artifactId>mvc_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mvc_demo</name>
    <description>Spring MVC Demo</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

Langkah 2. Mencipta halaman web

Permohonan kami akan menjadi sangat mudah. Kami akan mempunyai halaman utama (index.html), yang akan mengandungi pautan ke halaman selamat datang (greeting.html). Pada halaman ucapan, kami memaparkan ucapan. Kami akan menggunakan parameter URL untuk menghantar nama yang akan digunakan dalam ucapan ke halaman greeting.html. Mari buat halaman utama aplikasi kami — index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Main page</title>
</head>
<body>
    <p>Get your greeting <a href="/greeting">here</a></p>
</body>
</html>
Sekarang kita akan mencipta halaman greeting.html:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
Halaman kami mempunyai <p th:text="'Hello, ' + ${name} + '!'" />teg, yang tidak biasa untuk HTML. Atribut thteg pialah mekanisme yang digunakan oleh enjin templat Thymeleaf. Nilai pteg ialah "Hello," + nilai pembolehubah name, yang akan kami tetapkan dalam kod Java.

Langkah 3. Mencipta pengawal

Di dalam pakej mvc_demo, kami akan mencipta pakej contoller, di mana kami akan mencipta pengawal kami, HelloWorldController:

@Controller
public class HelloWorldController {

   @RequestMapping(value = "/greeting")
   public String helloWorldController(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
       model.addAttribute("name", name);
       return "greeting";
   }

}
Di satu pihak terdapat kod yang sangat sedikit, tetapi di sisi lain, terdapat banyak perkara yang berlaku. Mari mulakan analisis kami. Anotasi @Controller menunjukkan bahawa kelas ini ialah pengawal. Pada Musim Bunga, pengawal memproses permintaan HTTP yang ditujukan pada URL tertentu. Kelas kami mempunyai kaedah helloWorldController yang ditandakan dengan anotasi @RequestMapping(value = "/greeting"). Anotasi ini menunjukkan bahawa kaedah ini memproses permintaan HTTP GET yang ditujukan pada URL /greeting. Dalam erti kata lain, kaedah ini akan digunakan jika seseorang menavigasi ke /salam. Kaedah ini mengembalikan String. Menurut Spring MVC, kaedah pengawal harus mengembalikan nama paparan. Seterusnya, Spring akan mencari fail HTML dengan nama yang sama, yang akan dikembalikan sebagai respons kepada permintaan HTTP. Seperti yang anda lihat, Kaedah kami mengambil 2 hujah. Mari kita lihat mereka: Parameter 1: @RequestParam(name = "name", required = false, defaultValue = "World") Nama rentetan. Anotasi @RequestParam menunjukkan bahawa parameter nama String ialah parameter URL. Jika anotasi menunjukkan bahawa parameter URL ini adalah pilihan (diperlukan = palsu), maka jika ia tiada, nilai parameter nama String akan menjadi "Dunia" (defaultValue = "Dunia"). Jika ia ada, maka parameter URL akan menjadi "nama" (nama = "nama"). Mungkin banyak yang anda tidak faham di sini. Mari berikan beberapa contoh. Jadual di bawah menunjukkan nilai parameter nama String, dengan pelbagai pilihan untuk mengakses /salam (dengan dan tanpa parameter URL)
Contoh URL Nilai nama String
/salam dunia
/salam?nama=Amigo Amigo
/salam?nama=Zor Zor
Parameter 2: Parameter kedua ialah model Model. Parameter ini adalah beberapa model. Model ini terdiri daripada pelbagai atribut dalaman. Setiap atribut mempunyai nama dan nilai. Sesuatu seperti pasangan nilai kunci. Kita boleh menggunakan parameter ini untuk menghantar data daripada kod Java ke halaman HTML. Atau, menggunakan terminologi MVC, hantar data daripada model ke paparan. Ia hanya tinggal untuk memeriksa baris terakhir. Ini adalah cara kami menghantar data dari Java ke HTML, atau dari model ke paparan. Kaedah ini termasuk baris berikut: model.addAttribute("name", name); Di sini kita mencipta atribut baharu yang dipanggil nama dan memberikannya nilai parameter nama. Ingat, kami baru-baru ini membincangkan <p th:text = "'Hello,' + ${name} + '!'" /> Kami berkata bahawa nilai teg p ialah "Hello," + nilai pembolehubah nama, yang akan kami tetapkan dalam kod Java. Kami menetapkan nilai ini menggunakan baris model.addAttribute("name", name);

Langkah 5. Lari

Untuk memulakan, kita perlu menjalankan kaedah utama kelas MvcDemoApplication: Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 9Dalam log, kita akan melihat bahawa aplikasi web kami bermula pada port 8080: Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 10Dan ini bermakna bahawa dalam penyemak imbas, kita boleh pergi ke halaman di http:// localhost:8080 : Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 11Di sini kita mempunyai halaman index.html. Mari ikut pautan ke halaman ucapan: Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 12Pengawal kami telah digunakan dalam peralihan ini. Kami tidak menghantar sebarang parameter melalui URL. Akibatnya, atribut nama mengambil nilai lalai ("Dunia") yang ditunjukkan dalam anotasi. Mari cuba hantar parameter melalui URL: Bahagian 8. Mari tulis aplikasi kecil menggunakan Spring Boot - 13Semuanya berfungsi seperti yang dimaksudkan. Sekarang cuba jejaki laluan pembolehubah nama:
  1. Pengguna menghantar "name=Amigo" dalam URL ->
  2. Pengawal memproses tindakan kami, menerima pembolehubah nama dan menetapkan atribut model yang dipanggil nama sama dengan nilai yang diterima ->
  3. Data ini dapat dilihat daripada model, berakhir di halaman greeting.html dan dipaparkan kepada pengguna
Itu sahaja buat masa ini!

Hari ini kita berkenalan dengan topik MVC (Model - View - Controller) yang agak besar dan menarik. Ini adalah penghujung siri yang direka untuk memperkenalkan anda kepada perkara yang perlu anda ketahui sebelum memulakan pembangunan perusahaan.

Dalam ulasan, beritahu kami topik yang anda minati — Kami akan menanganinya!

Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION