JavaRush /Java Blog /Random-TL /Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spr...

Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot

Nai-publish sa grupo
Ang materyal na ito ay ang huling bahagi ng seryeng "Introduction to Enterprise Development". Mga nakaraang artikulo: Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 1Tingnan natin ang pinakasimpleng halimbawa ng pagpapatupad ng MVC gamit ang Spring-MVC bilang isang halimbawa. Upang gawin ito, magsulat tayo ng isang maliit na Hello World application sa spring-boot. Upang maaari mong ulitin ang lahat sa iyong sarili, bibigyan kita ng sunud-sunod na mga tagubilin. Una ay magsusulat kami ng isang maliit na aplikasyon, at pagkatapos ay susuriin namin ito.

Hakbang 1: Gumawa ng spring-boot application sa IntelliJ IDEA

Gamit ang File -> New -> Project... lumikha ng bagong proyekto. Sa window na bubukas, sa kaliwang bahagi ng menu, piliin ang Spring Initializr, piliin ang Project SDK, at iwanan ang opsyon ng Initializr Service URL bilang default. Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 2I-click ang button na Susunod. Sa susunod na window kailangan naming pumili ng mga parameter ng proyekto. Magkakaroon tayo ng Maven project. Piliin ang Uri - Maven Project, punan ang Group at Artifact Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 3at i-click ang Susunod. Sa susunod na window kailangan nating piliin ang mga bahagi ng Spring Framework na gagamitin natin. Dalawa lang ang kailangan natin:
  • Ang Spring Web ay isang bahagi na magpapahintulot sa amin na lumikha ng mga Web application. Kasama sa bahaging ito ang Spring MVC.
  • Thymeleaf - Ang tinatawag na template engine. Isang bagay na magpapahintulot sa amin na maglipat ng data mula sa Java patungo sa mga HTML na pahina
Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 4Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 5Sa susunod na window, piliin ang pangalan at lokasyon ng proyekto sa file system: Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 6I-click ang pindutang Tapusin. Nagawa na ang proyekto. Mayroon kaming sumusunod na istraktura ng proyekto: Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 7Narito kami ay interesado sa 2 file: pom.xml - deployment descriptor. Isang bagay na nagbibigay-daan sa iyo upang mabilis at madaling mag-import ng mga aklatan mula sa iba't ibang mga frameworks sa aming proyekto, pati na rin ang isang bagay kung saan namin i-configure ang pagpupulong ng aming application. Ang aming application ay binuo gamit ang Maven, ang pom.xml ay ang configuration file ng build system na ito. Java class - MvcDemoApplication. Ito ang pangunahing klase ng aming application, kung saan ilulunsad namin ang aming spring-boot project. Upang magsimula, patakbuhin lamang ang pangunahing pamamaraan sa klase na ito. Narito ang code para sa klase na ito, pati na rin ang pom.xml file: 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>

Hakbang 2. Lumikha ng mga web page

Ang aming aplikasyon ay magiging napakasimple. Magkakaroon tayo ng pangunahing pahina - index.html, sa loob kung saan magkakaroon ng link sa welcome page - greeting.html. Sa pahina ng pagbati ay ipapakita namin ang pagbati. Ipatupad natin ang kakayahang magpadala ng pangalan ng pagbati sa greeting.html page sa pamamagitan ng mga parameter ng url. Gawin natin ang pangunahing pahina ng aming aplikasyon - 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>
Ngayon gawin natin ang greeting.html page:
<!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>
Dito, mula sa isang hindi pangkaraniwang html na pahina, makakakita ka ng isang tag: Ang <p th:text="'Hello, ' + ${name} + '!'" /> katangian ng thtag pay isang tool ng Thymeleaf template engine. Salamat dito, ang halaga ng tag pay ang text na “Hello,” + ang value ng variable name, na itatakda namin mula sa Java code.

Hakbang 3: Gumawa ng Controller

Sa loob ng mvc_demo package gagawa kami ng contoller package, kung saan gagawa kami ng aming controller, 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";
   }

}
Sa isang banda mayroong napakakaunting code, ngunit sa kabilang banda ay maraming nangyayari. Simulan natin ang pagsusuri. Ang @Controller annotation ay nagpapahiwatig na ang klase na ito ay isang controller. Pinoproseso ng mga Controller sa Spring ang mga kahilingan ng HTTP sa mga partikular na address. Ang aming klase ay may helloWorldController na paraan, na minarkahan ng anotasyon - @RequestMapping(value = "/greeting"). Sinasabi sa amin ng anotasyong ito na ang pamamaraang ito ay nagpoproseso ng mga kahilingan sa HTTP GET sa /greeting address. Sa madaling salita, gagana ang pamamaraang ito kung may pupunta sa /greeting. Ang pamamaraang ito ay nagbabalik ng String. Ayon sa Spring-MVC, dapat ibalik ng controller method ang pangalan ng view. Susunod, maghahanap si Spring ng isang html file na may parehong pangalan, na ibabalik bilang tugon sa kahilingan ng HTTP. Gaya ng nakikita mo, ibinabalik ng aming pamamaraan ang pangalan ng web page na ginawa namin kanina - pagbati. Ang aming pamamaraan ay tumatagal ng 2 argumento. Tingnan natin ang mga ito: Parameter 1: @RequestParam(name = "name", required = false, defaultValue = "World") String name. Ang @RequestParam annotation ay nagsasaad na ang String name parameter ay isang url parameter. Ang mga annotation parentheses ay nagpapahiwatig na ang parameter na ito sa url ay opsyonal (kinakailangan = false), kung wala ito, ang value ng String name parameter ay World (defaultValue = "World"), at kung ito ay naroroon, ang parameter na ito sa url ay tatawaging pangalan (pangalan = "pangalan") Maaaring marami ang hindi malinaw dito. Magbigay tayo ng mga halimbawa. Ipinapakita ng talahanayan sa ibaba kung ano ang magiging halaga ng parameter ng String name para sa iba't ibang opsyon para sa pag-access sa /greeting address (may mga parameter at walang mga parameter sa URL)
Halimbawang URL Value ng parameter ng pangalan ng string
/bati mundo
/greeting?name=Amigo Amigo
/greeting?name=Zor Zor
Parameter 2: Ang pangalawang parameter ay Model model. Ang parameter na ito ay isang modelo. Ang modelong ito ay binubuo sa loob ng iba't ibang mga katangian. Ang bawat katangian ay may pangalan at halaga. Isang bagay na tulad ng key-value pairs. Gamit ang parameter na ito, maaari kaming maglipat ng data mula sa Java code patungo sa mga html na pahina. O, sa terminolohiya ng MVC, ilipat ang data mula sa Modelo patungo sa View. Ito ay nananatiling i-parse ang huling linya. Ang paraan ng pagpasa namin ng data mula sa Java patungo sa html o mula sa Modelo patungo sa View. Ang katawan ng pamamaraan ay naglalaman ng sumusunod na linya: model.addAttribute("name", name); Dito, lumikha kami ng isang bagong katangian na tinatawag na pangalan at itinalaga dito ang halaga ng parameter ng pangalan. Tandaan, kamakailan lang ay tinalakay namin ang tag: <p th:text="'Hello, ' + ${name} + '!'" /> Sinabi namin na ang halaga ng p tag ay ang text na "Hello," + ang halaga ng variable ng pangalan, na itatakda namin mula sa Java code. Itinakda namin ang halagang ito gamit ang linya model.addAttribute("name", name);

Hakbang 5. Ilunsad

Upang ilunsad, kailangan nating patakbuhin ang pangunahing pamamaraan sa klase ng MvcDemoApplication: Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 9Sa mga log ng paglulunsad, makikita natin na nagsimula ang ating web application sa port 8080: Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 10At nangangahulugan ito na maaari tayong pumunta sa pahina sa browser: http:// localhost:8080 : Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 11Dito ipinakita sa amin ang page na index.html. Sundan natin ang link para batiin: Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 12Sa panahon ng paglipat na ito, gumana ang aming controller. Hindi kami nagpasa ng anumang mga parameter sa pamamagitan ng URL, samakatuwid, gaya ng nakasaad sa anotasyon, kinuha ng value ng attribute ng pangalan ang default na value na World. Subukan nating ipasa ang parameter sa pamamagitan ng url: Bahagi 8. Pagsusulat ng isang maliit na aplikasyon sa spring-boot - 13Lahat ay gumagana ayon sa nilalayon. Ngayon subukang subaybayan ang landas ng variable ng pangalan:
  1. Ipinasa ng user ang halaga ng pangalan ng parameter = Amigo -> sa pamamagitan ng url
  2. Pinoproseso ng controller ang aming pagkilos, tinanggap ang variable ng pangalan at itinakda ang attribute ng modelo, kasama ang pangalan ng pangalan at ang tinatanggap na halaga ->
  3. Mula sa modelo, napunta ang data na ito sa View, sa greeting.html page at ipinakita sa user
Iyon lang!

Ngayon ipinakilala namin sa iyo ang isang medyo malaki at kawili-wiling paksa ng MVC (Model - View - Controller). Ito na ang katapusan ng serye, ang layunin nito ay ipakilala sa iyo ang kailangan mong malaman bago simulan ang Enterprise development.

Mag-iwan ng mga paksang interesado ka sa mga komento - gagawin namin ito!

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