JavaRush /Java Blogu /Random-AZ /Part 8. Spring-boot-da kiçik proqramın yazılması

Part 8. Spring-boot-da kiçik proqramın yazılması

Qrupda dərc edilmişdir
Bu material “Müəssisələrin İnkişafına Giriş” seriyasının yekun hissəsidir. Əvvəlki məqalələr: Hissə 8. Spring-boot-da kiçik proqramın yazılması - 1Nümunə kimi Spring-MVC istifadə edərək MVC tətbiqinin ən sadə nümunəsinə baxaq. Bunun üçün yaz-boot-da kiçik bir Hello World proqramı yazaq. Hər şeyi özünüz təkrarlaya bilməniz üçün sizə addım-addım təlimat verəcəyəm. Əvvəlcə kiçik bir ərizə yazacağıq, sonra onu təhlil edəcəyik.

Addım 1: IntelliJ IDEA-da yay-boot proqramı yaradın

Fayldan istifadə -> Yeni -> Layihə... yeni layihə yaradın. Açılan pəncərədə sol tərəfdəki menyuda Spring Initializr seçin, Project SDK seçin və Initializr Service URL seçimini defolt olaraq buraxın. Hissə 8. Spring-boot-da kiçik proqramın yazılması - 2Next düyməsini basın. Növbəti pəncərədə layihə parametrlərini seçməliyik. Maven layihəmiz olacaq. Type - Maven Project seçin, Qrup və Artifaktı doldurun Hissə 8. Spring-boot-da kiçik proqramın yazılması - 3və Next düyməsini basın. Növbəti pəncərədə istifadə edəcəyimiz Spring Framework komponentlərini seçməliyik. Bizə yalnız iki lazımdır:
  • Spring Web bizə Veb proqramları yaratmağa imkan verəcək bir komponentdir. Bu komponentə Spring MVC daxildir.
  • Thymeleaf - Sözdə şablon mühərriki. Java-dan HTML səhifələrinə məlumat ötürməyə imkan verəcək bir şey
Hissə 8. Spring-boot-da kiçik ərizə yazmaq - 4Часть 8. Пишем небольшое приложение на spring-boot - 5Növbəti pəncərədə fayl sistemində layihənin adını və yerini seçin: Часть 8. Пишем небольшое приложение на spring-boot - 6Finish düyməsini basın. Layihə yaradılıb. Aşağıdakı layihə strukturumuz var: Часть 8. Пишем небольшое приложение на spring-boot - 7Burada bizi 2 fayl maraqlandırır: pom.xml - yerləşdirmə deskriptoru. Layihəmizə müxtəlif çərçivələrdən kitabxanaları tez və asanlıqla idxal etməyə imkan verən bir şey, həmçinin tətbiqimizin montajını konfiqurasiya etdiyimiz bir şey. Tətbiqimiz Maven istifadə edərək qurulub, pom.xml bu qurma sisteminin konfiqurasiya faylıdır. Java sinfi - MvcDemoApplication. Bu, bizim yaz-boot layihəmizi işə salacağımız tətbiqimizin əsas sinfidir. Başlamaq üçün bu sinifdə əsas metodu işə salmaq kifayətdir. Bu sinif üçün kod, həmçinin pom.xml faylı: 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>

Addım 2. Veb səhifələr yaradın

Tətbiqimiz son dərəcə sadə olacaq. Əsas səhifəmiz olacaq - index.html, onun içərisində salamlama səhifəsinə keçid olacaq - greeting.html. Salamlama səhifəsində biz salamı göstərəcəyik. url parametrləri vasitəsilə greeting.html səhifəsinə salamlama adı göndərmək imkanını həyata keçirək. Tətbiqimizin əsas səhifəsini yaradaq - 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>
İndi salamlama.html səhifəsini yaradaq:
<!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>
Burada, atipik html səhifəsindən bir teq görə bilərsiniz: Teq <p th:text="'Hello, ' + ${name} + '!'" /> atributu Thymeleaf şablon mühərrikinin alətidir. Bunun sayəsində etiketin dəyəri “Salam,” mətni + Java kodundan təyin edəcəyimiz dəyişənin dəyəri olacaq .thppname

Addım 3: Nəzarətçi yaradın

Mvc_demo paketinin içərisində biz nəzarətçi paketi yaradacağıq, onun daxilində nəzarətçimiz HelloWorldController yaradacağıq:
@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 tərəfdən kod çox azdır, digər tərəfdən isə çox şey gedir. Analizlərə başlayaq. @Controller annotasiyası bu sinfin nəzarətçi olduğunu göstərir. Bahardakı nəzarətçilər müəyyən ünvanlara HTTP sorğularını emal edir. Sinifimizdə annotasiya ilə qeyd olunan helloWorldController metodu var - @RequestMapping(value = "/greeting"). Bu annotasiya bizə deyir ki, bu metod HTTP GET sorğularını / salamlama ünvanına emal edir. Başqa sözlə, kimsə /salamlamaya getsə, bu üsul işləyəcək. Bu üsul String-i qaytarır. Spring-MVC-yə görə, nəzarətçi metodu görünüşün adını qaytarmalıdır. Sonra, Spring HTTP sorğusuna cavab olaraq qaytarılacaq eyni adlı html faylı axtaracaq. Gördüyünüz kimi, metodumuz əvvəllər yaratdığımız veb səhifənin adını qaytarır - salamlama. Metodumuz 2 arqument götürür. Gəlin onlara baxaq: Parametr 1: @RequestParam(ad = "ad", tələb = false, defaultValue = "Dünya") String adı. @RequestParam annotasiyası String adı parametrinin url parametri olduğunu bildirir. Annotasiya mötərizələri göstərir ki, url-dəki bu parametr isteğe bağlıdır (tələb olunur = false), əgər yoxdursa, String name parametrinin dəyəri World (defaultValue = "World") olacaq və əgər varsa, bu parametr url-də ad adlandırılacaq (ad = "ad") Burada aydın olmayan çox şey ola bilər. Nümunələr verək. Aşağıdakı cədvəl /salamlama ünvanına daxil olmaq üçün müxtəlif seçimlər üçün String name parametrinin dəyərinin nə olacağını göstərir (URL-də parametrlərlə və olmadan)
Nümunə URL Sətir adı parametr dəyəri
/salam Dünya
/salam?name=Amigo Amigo
/salam?name=Zor Zor
Parametr 2: İkinci parametr Model modelidir. Bu parametr bir modeldir. Bu model daxili olaraq müxtəlif atributlardan ibarətdir. Hər bir atributun adı və dəyəri var. Açar-dəyər cütləri kimi bir şey. Bu parametrdən istifadə edərək məlumatları Java kodundan html səhifələrinə köçürə bilərik. Və ya MVC terminologiyasında, məlumatları Modeldən Görünüşə köçürün. Son sətri təhlil etmək qalır. Məlumatları Java-dan html-ə və ya Modeldən Görünüşə ötürmə üsulu. Metodun gövdəsi aşağıdakı sətirdən ibarətdir: model.addAttribute("name", name); Burada biz ad adlı yeni atribut yaradırıq və ona name parametrinin qiymətini təyin edirik. Unutmayın, bu yaxınlarda biz teq haqqında danışdıq: <p th:text="'Hello, ' + ${name} + '!'" /> Biz dedik ki, p teqinin dəyəri “Salam,” mətni + Java kodundan təyin edəcəyimiz ad dəyişəninin dəyəri olacaq. Bu dəyəri xəttdən istifadə edərək təyin edirik model.addAttribute("name", name);

Addım 5. Başlayın

Başlamaq üçün MvcDemoApplication sinifində əsas metodu işlətməliyik: Часть 8. Пишем небольшое приложение на spring-boot - 9Başlama qeydlərində veb tətbiqimizin 8080 portunda başladığını görəcəyik: Часть 8. Пишем небольшое приложение на spring-boot - 10Bu o deməkdir ki, biz brauzerdə səhifəyə keçə bilərik: http:// localhost:8080 : Часть 8. Пишем небольшое приложение на spring-boot - 11Burada index.html səhifəsi bizə göstərildi. Salamlaşmaq üçün linki izləyək: Часть 8. Пишем небольшое приложение на spring-boot - 12Bu keçid zamanı nəzarətçimiz işləyirdi. Biz heç bir parametri URL vasitəsilə ötürmədik, ona görə də annotasiyada deyildiyi kimi, ad atributunun dəyəri standart Dünya dəyərini aldı. İndi parametri url vasitəsilə keçirməyə çalışaq: Часть 8. Пишем небольшое приложение на spring-boot - 13Hər şey nəzərdə tutulduğu kimi işləyir. İndi ad dəyişəninin yolunu izləməyə çalışın:
  1. İstifadəçi parametr adının dəyərini = Amigo -> url vasitəsilə ötürdü
  2. Nəzarətçi hərəkətimizi emal etdi, ad dəyişənini qəbul etdi və ad adı və qəbul edilən dəyər ilə model atributunu təyin etdi ->
  3. Modeldən bu məlumat Görünüşə, salamlama.html səhifəsinə keçdi və istifadəçiyə göstərildi
Hamısı budur!

Bu gün sizi MVC-nin kifayət qədər böyük və maraqlı mövzusu ilə tanış etdik (Model - Görünüş - Nəzarətçi). Bu seriyanın sonu, məqsədi Müəssisələrin inkişafına başlamazdan əvvəl bilməli olduğunuz şeylərlə sizi tanış etməkdir.

Sizi maraqlandıran mövzuları şərhlərdə buraxın - biz bunu edəcəyik!

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION