JavaRush /Java Blog /Random-TK /Bölüm 8. springaz paslynda kiçi programma ýazmak

Bölüm 8. springaz paslynda kiçi programma ýazmak

Toparda çap edildi
Bu material “Kärhananyň ösüşine giriş” seriýasynyň soňky bölümidir. Öňki makalalar: Bölüm 8. springaz paslynda kiçi programma ýazmak - 1Mysal hökmünde Bahar-MVC ulanyp, MVC durmuşa geçirmegiň iň ýönekeý mysalyna seredeliň. Munuň üçin bahar-bootda kiçijik “Salam World” programmasyny ýazalyň. Hemme zady özüňiz gaýtalap bilersiňiz, men size ädimme-ädim görkezmeler bererin. Ilki bilen kiçijik bir programma ýazarys, soň bolsa analiz ederis.

Stepdim 1. IntelliJ IDEA-da bahar-boot programmasyny dörediň

Faýl -> Täze -> Taslama ulanmak ... täze taslama dörediň. Açylýan penjirede, çep tarapdaky menýuda, Bahar Initializr saýlaň, Taslama SDK saýlaň we Initializr Service URL opsiýasyny deslapky görnüşde goýuň. Bölüm 8. springaz paslynda kiçi programma ýazmak - 2Indiki düwmesine basyň. Indiki penjirede taslama parametrlerini saýlamaly. Maven taslamasy bolar. Görnüş - Maven Taslamasyny saýlaň, Topar we Artifact-i dolduryň Bölüm 8. springaz paslynda kiçi programma ýazmak - 3we "Indiki" düwmesine basyň. Indiki penjirede ulanjak “Bahar çarçuwasy” komponentlerini saýlamaly. Bize diňe ikisi gerek:
  • “Spring Web”, web programmalaryny döretmäge mümkinçilik berýän komponentdir. Bu komponente Bahar MVC girýär.
  • Timileaf - Şablon hereketlendirijisi diýilýär. Java-dan HTML sahypalaryna maglumatlary geçirmäge mümkinçilik berýän bir zat
Bölüm 8. springaz paslynda kiçi programma ýazmak - 4Bölüm 8. springaz paslynda kiçi programma ýazmak - 5Indiki penjirede faýl ulgamynda taslamanyň adyny we ýerini saýlaň: Bölüm 8. springaz paslynda kiçijik programma ýazmak - 6“Finish” düwmesine basyň. Taslama döredildi. Bizde aşakdaky taslama gurluşy bar: Bölüm 8. springaz paslynda kiçijik programma ýazmak - 7Bu ýerde bizi 2 faýl gyzyklandyrýar: pom.xml - ýerleşdiriş beýany. Taslamamyza dürli çarçuwalardan kitaphanalary çalt we aňsatlyk bilen import etmäge mümkinçilik berýän bir zat, şeýle hem programmamyzyň ýygnagyny düzýän bir zat. Programmamyz Maveniň kömegi bilen guruldy, pom.xml bu gurluşyk ulgamynyň konfigurasiýa faýlydyr. Java synpy - MvcDemoApplication. Bu, programmamyzyň esasy synpy, ondan bahar-boot taslamamyzy başlarys. Başlamak üçin diňe şu synpda esasy usuly işlediň. Ine, bu synpyň kody, şeýle hem pom.xml faýly: 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>

Stepdim 2. Web sahypalaryny dörediň

Biziň anketamyz gaty ýönekeý bolar. Esasy sahypamyz bolar - index.html, içinde hoş geldiňiz sahypasyna baglanyşyk bolar - salam.html. Salam sahypasynda gutlagy görkezeris. Geliň, salam.html sahypasyna url parametrleri arkaly gutlag adyny ibermek ukybyny durmuşa geçireliň. Programmamyzyň esasy sahypasyny döredeliň - 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>
Indi salam.html sahypasyny döredeliň:
<!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>
Bu ýerde, adaty bolmadyk html sahypasyndan bir belligi görüp bilersiňiz: Bellik <p th:text="'Hello, ' + ${name} + '!'" /> atributy Thymeleaf şablon hereketlendirijisiniň guralydyr. Munuň netijesinde belligiň bahasy “Salam” teksti bolar , Java kodundan düzjek üýtgeýjimiziň bahasy bolar .thppname

3-nji ädim: Dolandyryjy dörediň

Mvc_demo paketiniň içinde kontroller paketini dörederis, içinde kontrollerimizi dörederis 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";
   }

}
Bir tarapdan kod gaty az, beýleki tarapdan bolsa köp zat bar. Derňewi başlalyň. @Controller düşündirişi bu synpyň gözegçidigini görkezýär. Bahar prosesi dolandyryjylary, belli bir salgylara HTTP haýyş edýär. Biziň synpymyzda bellik - @RequestMapping (value = "/ salam") bilen bellenen salamWorldController usuly bar. Bu düşündiriş, bu usulyň / gutlag adresine HTTP GET haýyşlaryny gaýtadan işleýändigini aýdýar. Başgaça aýdylanda, kimdir biri / salamlaşsa, bu usul işlär. Bu usul Setiri yzyna gaýtaryp berýär. “Spring-MVC” -e görä, gözegçilik ediji usul görnüşiň adyny yzyna gaýtarmaly. Ondan soň, Bahar, HTTP haýyşyna jogap hökmünde yzyna gaýtaryljak şol bir at bilen html faýly gözlär. Görşüňiz ýaly, usulymyz ozal döreden web sahypamyzyň adyny - salam berýär. Usulymyz 2 argument alýar. Olara seredeliň: 1-nji parametr: @RequestParam (name = "name", zerur = ýalan, defaultValue = "Dünýä") Setiriň ady. @RequestParam düşündirişinde String adynyň parametriniň url parametridigi aýdylýar. Annotasiýa gabygy, url-daky bu parametriň islege baglydygyny (zerur = ýalan), ýok bolsa, String ady parametriniň bahasy Dünýä (defaultValue = "World") boljakdygyny görkezýär, eger bar bolsa, bu parametr url-da at diýler (name = "name") Bu ýerde düşnüksiz köp zat bolup biler. Mysal getireliň. Aşakdaky tablisada / salam adresine girmek üçin dürli görnüşler üçin (URL-de parametrleri bolmazdan) String name parametriniň bahasynyň nähili boljakdygyny görkezýär.
Mysal URL Setir adynyň parametr bahasy
/ salam Dünýä
/ salam? name = Amigo Amigo
/ salam? name = Zor Zor
2-nji parametr: Ikinji parametr Model modeli. Bu parametr modeldir. Bu model içerde dürli atributlardan durýar. Her bir atributyň ady we gymmaty bar. Açar baha jübütleri ýaly bir zat. Bu parametri ulanyp, Java kodundan maglumatlary html sahypalaryna geçirip bileris. Ora-da MVC terminologiýasynda Modelden Görnüşe maglumat geçiriň. Soňky setiri derňemek galýar. Java-dan html ýa-da Model-den View-a maglumatlary geçirmegiň usuly. Usulyň mazmuny aşakdaky setiri öz içine alýar: model.addAttribute("name", name); Bu ýerde biz at diýilýän täze atribut döredýäris we oňa at parametriniň bahasyny belläris. Justadyňyzdan çykarmaň, ýaňy-ýakynda belligi ara alyp maslahatlaşdyk: <p th:text="'Hello, ' + ${name} + '!'" /> p belliginiň bahasynyň “Salam” teksti boljakdygyny, Java kodundan goýjak adyň üýtgeýjisiniň bahasy boljakdygyny aýtdyk. Bu bahany setir ulanyp kesgitledik model.addAttribute("name", name);

Stepdim 5. Işletmek

Işletmek üçin MvcDemoApplication synpynda esasy usuly işletmeli: Bölüm 8. springaz paslynda kiçi programma ýazmak - 9Işletiş surnallarynda web programmamyzyň 8080-nji portda başlandygyny göreris: Bölüm 8. springaz paslynda kiçijik programma ýazmak - 10Bu bolsa brauzerdäki sahypa girip biljekdigimizi aňladýar: http: // localhost: 8080 : Bölüm 8. springaz paslynda kiçi programma ýazmak - 11Ine, index.html sahypasy bize görkezildi. Salamlaşmak üçin baglanyşyga eýereliň: Bölüm 8. springaz paslynda kiçi programma ýazmak - 12Bu geçiş döwründe gözegçimiz işledi. URL-den haýsydyr bir parametr geçmedik, şonuň üçin düşündirişde aýdylyşy ýaly, at atributynyň bahasy Dünýä bahasyny aldy. Geliň indi parametri url arkaly geçirmäge synanyşalyň: Bölüm 8. springaz paslynda kiçi programma ýazmak - 13Hemme zat göz öňünde tutulan ýaly işleýär. Indi at üýtgeýjisiniň ýoluny yzarlamaga synanyşyň:
  1. Ulanyjy parametriň ady = Amigo -> url arkaly geçdi
  2. Gözegçi biziň hereketimizi gaýtadan işledi, adyň üýtgeýjisini kabul etdi we adyň ady we kabul edilen bahasy bilen model atributyny kesgitledi ->
  3. Modelden bu maglumatlar View, salamy.html sahypasyna geçdi we ulanyja görkezildi
Bu hemmesi!

Bu gün sizi MVC-iň has uly we gyzykly mowzugy bilen tanyşdyrdyk (Model - View - Controller). Bu seriýanyň soňy, maksady sizi kärhana ösüşine başlamazdan ozal bilmeli zatlaryňyz bilen tanyşdyrmak.

Özüňizi gyzyklandyrýan mowzuklary teswirlerde goýuň - ederis!

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