CodeGym /Java Blog /Acak /Bagian 8. Mari menulis aplikasi kecil menggunakan Spring ...
John Squirrels
Level 41
San Francisco

Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot

Dipublikasikan di grup Acak
Materi ini merupakan bagian penutup dari rangkaian "Pengantar Pengembangan Usaha". Artikel sebelumnya: Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 1Mari kita lihat implementasi MVC paling sederhana menggunakan Spring MVC sebagai contoh. Untuk melakukan ini, kami akan menulis aplikasi kecil Hello World menggunakan Spring Boot. Saya akan memberi Anda petunjuk langkah demi langkah, sehingga Anda dapat mengulangi semuanya sendiri. Pertama, kami akan menulis aplikasi kecil, lalu kami akan menganalisisnya.

Langkah 1. Membuat aplikasi Spring Boot di IntelliJ IDEA.

Gunakan File -> New -> Project… untuk membuat proyek baru. Di jendela yang terbuka, di menu sebelah kiri, pilih Spring Initializr, dan pilih Project SDK. Biarkan default untuk opsi Initializr Service URL. Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 2Klik tombol "Berikutnya". Di jendela berikutnya, kita perlu memilih pengaturan proyek. Kami akan memiliki proyek Maven. Pilih Proyek Maven sebagai jenisnya. Isi bidang Grup dan Artefak Klik Berikutnya. Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 3Di jendela berikutnya, kita perlu memilih komponen Spring Framework yang akan kita gunakan. Dua sudah cukup bagi kita:
  • Spring Web adalah komponen yang memungkinkan kita membuat aplikasi web. Komponen ini termasuk Spring MVC.
  • Thymeleaf adalah mesin templat kami. Itu adalah hal yang memungkinkan kami mengirim data dari Java ke halaman HTML
Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 4Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 5Di jendela berikutnya, pilih nama dan lokasi proyek di sistem file: Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 6Klik tombol "Selesai". Proyek dibuat. Kita berakhir dengan struktur proyek berikut: Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 7Di sini kita tertarik pada 2 file: pom.xml (deployment descriptor). Hal ini memungkinkan Anda dengan cepat dan mudah mengimpor pustaka dari berbagai kerangka kerja ke dalam proyek kami. Itu juga tempat kami mengonfigurasi bagaimana aplikasi kami dibuat. Aplikasi kita dibuat menggunakan Maven, dan pom.xml adalah file konfigurasi untuk sistem build ini. Kelas Java adalah MvcDemoApplication. Ini adalah kelas utama aplikasi kita. Kami akan meluncurkan proyek Spring Boot kami darinya. Untuk memulai, jalankan saja metode utama dari 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.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. Membuat halaman web

Aplikasi kami akan sangat sederhana. Kami akan memiliki halaman utama (index.html), yang akan berisi tautan ke halaman selamat datang (greeting.html). Pada halaman salam, kami menampilkan salam. Kami akan menggunakan parameter URL untuk meneruskan nama yang akan digunakan dalam salam ke halaman greeting.html. 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 kita akan membuat 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 memiliki <p th:text="'Hello, ' + ${name} + '!'" />tag, yang tidak normal untuk HTML. Atribut thtag padalah mekanisme yang digunakan oleh mesin template Thymeleaf. Nilai tagnya padalah "Halo, " + nilai variabel name, yang akan kita atur dalam kode Java.

Langkah 3. Membuat pengontrol

Di dalam paket mvc_demo, kita akan membuat paket pengontrol, di mana kita akan membuat pengontrol, 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, tetapi di sisi lain, ada banyak hal yang terjadi. Mari kita mulai analisis kita. Anotasi @Controller menunjukkan bahwa kelas ini adalah pengontrol. Di Musim Semi, pengontrol memproses permintaan HTTP yang diarahkan ke URL tertentu. Kelas kita memiliki metode helloWorldController yang ditandai dengan anotasi @RequestMapping(value = "/greeting"). Anotasi ini menunjukkan bahwa metode ini memproses permintaan HTTP GET yang diarahkan ke /greeting URL. Dengan kata lain, metode ini akan dipanggil jika seseorang membuka /greeting. Metode ini mengembalikan sebuah 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 membutuhkan 2 argumen. Mari kita lihat mereka: Parameter 1: @RequestParam(name = "name", required = false, defaultValue = "World") String name. Anotasi @RequestParam menunjukkan bahwa parameter nama String adalah parameter URL. Jika anotasi menunjukkan bahwa parameter URL ini opsional (diperlukan = salah), maka jika tidak ada, nilai parameter Nama string akan menjadi "Dunia" (defaultValue = "Dunia"). Jika ada, maka parameter URL akan menjadi "nama" (nama = "nama"). Mungkin ada banyak hal yang tidak Anda mengerti di sini. Mari berikan beberapa contoh. Tabel di bawah ini menunjukkan nilai parameter nama String, dengan berbagai opsi untuk mengakses /sapaan (dengan dan tanpa parameter URL)
Contoh URL Nilai nama String
/salam Dunia
/salam?name=Amigo Amigo
/salam?name=Zor Zor
Parameter 2: Parameter kedua adalah model Model. Parameter ini adalah beberapa model. Model ini terdiri dari berbagai atribut internal. Setiap atribut memiliki nama dan nilai. Sesuatu seperti pasangan kunci-nilai. Kita dapat menggunakan parameter ini untuk mengirimkan data dari kode Java ke halaman HTML. Atau, menggunakan terminologi MVC, kirimkan data dari model ke tampilan. Tinggal memeriksa baris terakhir. Ini adalah cara kami mengirimkan data dari Java ke HTML, atau dari model ke tampilan. Metode tersebut mencakup baris berikut: model.addAttribute("name", name); Di sini kita membuat atribut baru bernama nama dan menetapkannya sebagai nilai parameter nama. Ingat, baru-baru ini kita membahas <p th:text = "'Hello,' + ${name} + '!'" /> We said that the value of the p tag is "Hello, " + the value of the name variable, which we will set in Java code. Kami menetapkan nilai ini menggunakan garis model.addAttribute("name", name);

Langkah 5. Jalankan

Untuk memulai, kita perlu menjalankan metode utama kelas MvcDemoApplication: Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 9Di log, kita akan melihat bahwa aplikasi web kita dimulai pada port 8080: Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 10Dan ini berarti bahwa di browser, kita dapat membuka halaman di http:// localhost:8080 : Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 11Di sini kita memiliki halaman index.html. Mari ikuti tautan ke halaman salam: Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 12Pengontrol kami dipanggil dalam transisi ini. Kami tidak meneruskan parameter apa pun melalui URL. Hasilnya, atribut nama menggunakan nilai default ("Dunia") yang ditunjukkan dalam anotasi. Mari coba lewati parameter melalui URL: Bagian 8. Mari menulis aplikasi kecil menggunakan Spring Boot - 13Semuanya berfungsi sebagaimana mestinya. Sekarang coba lacak jalur variabel nama:
  1. Pengguna mengirimkan "name=Amigo" di URL ->
  2. Pengontrol memproses tindakan kami, menerima variabel nama, dan menyetel atribut model yang disebut name sama dengan nilai yang diterima ->
  3. Data ini muncul dari model, berakhir di halaman greeting.html, dan ditampilkan kepada pengguna
Itu saja untuk saat ini!

Hari ini kami berkenalan dengan topik MVC (Model - View - Controller) yang agak besar dan menarik. Ini adalah akhir dari seri yang dirancang untuk memperkenalkan Anda pada apa yang perlu Anda ketahui sebelum memulai pengembangan usaha.

Di komentar, beri tahu kami topik mana yang Anda minati — Kami akan membahasnya!

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