JavaRush /Java Blog /Random-ID /Bagian 8. Menulis aplikasi kecil di spring-boot

Bagian 8. Menulis aplikasi kecil di spring-boot

Dipublikasikan di grup Random-ID
Materi ini merupakan bagian akhir dari seri “Pengantar Pengembangan Usaha”. Artikel sebelumnya: Bagian 8. Menulis aplikasi kecil di spring-boot - 1Mari kita lihat contoh paling sederhana implementasi MVC menggunakan Spring-MVC sebagai contoh. Untuk melakukan ini, mari kita tulis aplikasi kecil Hello World di spring-boot. Agar Anda dapat mengulangi semuanya sendiri, saya akan memberi Anda petunjuk langkah demi langkah. Pertama kita akan menulis aplikasi kecil, dan kemudian kita akan menganalisisnya.

Langkah 1: Buat aplikasi spring-boot di IntelliJ IDEA

Menggunakan File -> Baru -> Proyek... buat proyek baru. Di jendela yang terbuka, di menu sebelah kiri, pilih Spring Initializr, pilih Project SDK, dan biarkan opsi Initializr Service URL sebagai default. Bagian 8. Menulis aplikasi kecil di spring-boot - 2Klik tombol Berikutnya. Di jendela berikutnya kita perlu memilih parameter proyek. Kami akan memiliki proyek Maven. Pilih Type - Maven Project, isi Group dan Artifact Bagian 8. Menulis aplikasi kecil di spring-boot - 3dan klik Next. Di jendela berikutnya kita perlu memilih komponen Spring Framework yang akan kita gunakan. Kami hanya membutuhkan dua:
  • Spring Web adalah komponen yang memungkinkan kita membuat aplikasi Web. Komponen ini mencakup Spring MVC.
  • Thymeleaf - Yang disebut mesin templat. Suatu hal yang memungkinkan kita mentransfer data dari Java ke halaman HTML
Bagian 8. Menulis aplikasi kecil di spring-boot - 4Bagian 8. Menulis aplikasi kecil di spring-boot - 5Di jendela berikutnya, pilih nama dan lokasi proyek di sistem file: Bagian 8. Menulis aplikasi kecil di spring-boot - 6Klik tombol Selesai. Proyek telah dibuat. Kami memiliki struktur proyek berikut: Bagian 8. Menulis aplikasi kecil di spring-boot - 7Di sini kami tertarik pada 2 file: pom.xml - deskriptor penerapan. Suatu hal yang memungkinkan Anda mengimpor perpustakaan dengan cepat dan mudah dari kerangka kerja yang berbeda ke dalam proyek kami, serta hal di mana kami mengonfigurasi perakitan aplikasi kami. Aplikasi kita dibangun menggunakan Maven, pom.xml adalah file konfigurasi sistem build ini. Kelas Java - MvcDemoApplication. Ini adalah kelas utama aplikasi kita, dari mana kita akan meluncurkan proyek spring-boot kita. Untuk memulai, jalankan saja metode utama di kelas ini. Berikut kode untuk kelas ini, serta file 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.javarush</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. Buat halaman web

Aplikasi kita akan sangat sederhana. Kami akan memiliki halaman utama - index.html, di dalamnya akan ada link ke halaman selamat datang - salam.html. Pada halaman salam kita akan menampilkan salam. Mari terapkan kemampuan mengirim nama ucapan ke halaman salam.html melalui parameter url. Mari buat halaman utama aplikasi kita - 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 mari kita buat halaman salam.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>
Di sini, dari halaman html yang tidak lazim, Anda dapat melihat tag: <p th:text="'Hello, ' + ${name} + '!'" /> Atribut thtag padalah alat mesin templat Thymeleaf. Berkat itu, nilai tag pakan menjadi teks “Halo, “ + nilai variabel name, yang akan kita atur dari kode Java.

Langkah 3: Buat Pengontrol

Di dalam paket mvc_demo kita akan membuat paket pengontrol, di dalamnya kita akan membuat pengontrol kita, 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 sisi kodenya sangat sedikit, namun di sisi lain ada banyak hal yang terjadi. Mari kita mulai analisisnya. Anotasi @Controller menunjukkan bahwa kelas ini adalah pengontrol. Pengontrol di Spring memproses permintaan HTTP ke alamat tertentu. Kelas kita memiliki metode helloWorldController, yang ditandai dengan anotasi - @RequestMapping(value = "/greeting"). Anotasi ini memberitahu kita bahwa metode ini memproses permintaan HTTP GET ke alamat /greeting. Dengan kata lain, cara ini akan berhasil jika seseorang membuka /salam. Metode ini mengembalikan String. Menurut Spring-MVC, metode pengontrol harus mengembalikan nama tampilan. Selanjutnya, Spring akan mencari file html dengan nama yang sama, yang akan dikembalikan sebagai respons terhadap permintaan HTTP. Seperti yang Anda lihat, metode kami mengembalikan nama halaman web yang kami buat sebelumnya - salam. Metode kami membutuhkan 2 argumen. Mari kita lihat: Parameter 1: @RequestParam(name = "name", require = false, defaultValue = "World") Nama string. Anotasi @RequestParam menyatakan bahwa parameter nama String adalah parameter url. Tanda kurung anotasi menunjukkan bahwa parameter dalam url ini adalah opsional (wajib = salah), jika tidak ada, nilai parameter nama String adalah Dunia (defaultValue = "Dunia"), dan jika ada, maka parameter ini di url akan dipanggil nama (nama = "nama") Mungkin banyak yang kurang jelas disini. Mari kita beri contoh. Tabel di bawah ini menunjukkan nilai parameter nama String untuk berbagai opsi untuk mengakses alamat /greeting (dengan dan tanpa parameter di URL)
Contoh URL Nilai parameter nama string
/salam Dunia
/salam?nama=Amigo Teman
/salam?nama=Zor Zor
Parameter 2: Parameter kedua adalah model Model. Parameter ini adalah model. Model ini secara internal terdiri dari berbagai atribut. Setiap atribut mempunyai nama dan nilai. Sesuatu seperti pasangan nilai kunci. Dengan menggunakan parameter ini, kita dapat mentransfer data dari kode Java ke halaman html. Atau, dalam terminologi MVC, mentransfer data dari Model ke View. Masih mengurai baris terakhir. Cara kita meneruskan data dari Java ke html atau dari Model ke View. Badan metode berisi baris berikut: model.addAttribute("name", name); Di sini kita membuat atribut baru bernama nama dan menetapkan nilai parameter nama. Ingat, baru-baru ini kita membahas tag: <p th:text="'Hello, ' + ${name} + '!'" /> Kita mengatakan bahwa nilai tag p adalah teks “Halo, “ + nilai variabel nama, yang akan kita atur dari kode Java. Kami menetapkan nilai ini menggunakan garis model.addAttribute("name", name);

Langkah 5. Luncurkan

Untuk meluncurkannya, kita perlu menjalankan metode utama di kelas MvcDemoApplication: Bagian 8. Menulis aplikasi kecil di spring-boot - 9Di log peluncuran, kita akan melihat bahwa aplikasi web kita dimulai pada port 8080: Bagian 8. Menulis aplikasi kecil di spring-boot - 10Dan ini berarti kita dapat membuka halaman di browser: http:// localhost:8080 : Bagian 8. Menulis aplikasi kecil di spring-boot - 11Di sini halaman index.html ditampilkan kepada kami. Mari ikuti tautan untuk menyapa: Bagian 8. Menulis aplikasi kecil di spring-boot - 12Selama transisi ini, pengontrol kami berfungsi. Kami tidak meneruskan parameter apa pun melalui URL, oleh karena itu, seperti yang dinyatakan dalam anotasi, nilai atribut nama mengambil nilai default Dunia. Sekarang mari kita coba meneruskan parameter melalui url: Bagian 8. Menulis aplikasi kecil di spring-boot - 13Semuanya berfungsi sebagaimana mestinya. Sekarang coba telusuri jalur nama variabel:
  1. Pengguna meneruskan nilai parameter name = Amigo -> melalui url
  2. Pengontrol memproses tindakan kita, menerima variabel nama dan mengatur atribut model, dengan nama nama dan nilai yang diterima ->
  3. Dari model, data ini masuk ke Tampilan, ke halaman salam.html dan ditampilkan kepada pengguna
Itu saja!

Hari ini kami memperkenalkan Anda pada topik MVC (Model - View - Controller) yang cukup besar dan menarik. Ini adalah akhir dari seri ini, yang tujuannya adalah untuk memperkenalkan Anda pada apa yang perlu Anda ketahui sebelum memulai pengembangan Perusahaan.

Tinggalkan topik yang Anda minati di komentar - kami akan melakukannya!

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