JavaRush /בלוג Java /Random-HE /חלק 8. כתיבת אפליקציה קטנה ב-spring-boot

חלק 8. כתיבת אפליקציה קטנה ב-spring-boot

פורסם בקבוצה
חומר זה הוא החלק האחרון בסדרת "מבוא לפיתוח ארגוני". מאמרים קודמים: חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 1בואו נסתכל על הדוגמה הפשוטה ביותר של יישום MVC באמצעות Spring-MVC כדוגמה. לשם כך, בואו נכתוב אפליקציה קטנה של Hello World ב-spring-boot. כדי שתוכל לחזור על הכל בעצמך, אני אתן לך הוראות שלב אחר שלב. תחילה נכתוב אפליקציה קטנה, ולאחר מכן ננתח אותה.

שלב 1: צור יישום קפיצי אתחול ב-IntelliJ IDEA

באמצעות קובץ -> חדש -> פרויקט... צור פרויקט חדש. בחלון שנפתח, בתפריט הצד השמאלי, בחר Spring Initializr, בחר Project SDK, והשאיר את האפשרות Initializr Service URL כברירת מחדל. חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 2לחץ על הלחצן הבא. בחלון הבא עלינו לבחור פרמטרים של פרויקט. יהיה לנו פרויקט של מייבן. בחרו Type - Maven Project, מלאו קבוצה ו-Artifact חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 3ולחץ על Next. בחלון הבא עלינו לבחור את רכיבי Spring Framework בהם נשתמש. אנחנו צריכים רק שניים:
  • Spring Web הוא רכיב שיאפשר לנו ליצור אפליקציות אינטרנט. רכיב זה כולל Spring MVC.
  • Thymeleaf - מה שנקרא מנוע תבנית. דבר שיאפשר לנו להעביר נתונים מג'אווה לדפי HTML
חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 4חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 5בחלון הבא, בחר את השם והמיקום של הפרויקט במערכת הקבצים: חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 6לחץ על כפתור סיום. הפרויקט נוצר. יש לנו את מבנה הפרויקט הבא: חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 7כאן אנו מעוניינים ב-2 קבצים: pom.xml - מתאר פריסה. דבר המאפשר לך לייבא במהירות ובקלות ספריות ממסגרות שונות לפרויקט שלנו, כמו גם דבר בו אנו מגדירים את ההרכבה של האפליקציה שלנו. האפליקציה שלנו בנויה באמצעות Maven, pom.xml הוא קובץ התצורה של מערכת הבנייה הזו. מחלקה Java - MvcDemoApplication. זהו המחלקה העיקרית של האפליקציה שלנו, ממנה נשיק את פרויקט האביב-מגפיים שלנו. כדי להתחיל, פשוט הפעל את השיטה הראשית במחלקה זו. הנה הקוד למחלקה זו, כמו גם הקובץ 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>

שלב 2. צור דפי אינטרנט

האפליקציה שלנו תהיה פשוטה ביותר. יהיה לנו עמוד ראשי - index.html, שבתוכו יהיה קישור לעמוד הפתיחה - greeting.html. בדף הברכה נציג את הברכה. בואו ליישם את היכולת לשלוח שם ברכה לעמוד greeting.html באמצעות פרמטרים של url. בואו ניצור את העמוד הראשי של האפליקציה שלנו - 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>
כעת ניצור את הדף 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>
כאן, מדף HTML לא טיפוסי, אתה יכול לראות תג: <p th:text="'Hello, ' + ${name} + '!'" /> תכונת thהתג pהיא כלי של מנוע התבנית Thymeleaf. הודות לו, הערך של התג pיהיה הטקסט "Hello, " + הערך של המשתנה name, אותו נגדיר מקוד Java.

שלב 3: צור בקר

בתוך חבילת mvc_demo ניצור חבילת contoller, שבתוכה ניצור את הבקר שלנו, 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";
   }

}
מצד אחד יש מעט מאוד קוד, אבל מצד שני קורה הרבה. בואו נתחיל בניתוח. ההערה @Controller מציינת שהמחלקה הזו היא בקר. בקרים ב-Spring מעבדים בקשות HTTP לכתובות ספציפיות. לכיתה שלנו יש שיטת helloWorldController, המסומנת עם ההערה - @RequestMapping(value = "/greeting"). ביאור זה אומר לנו ששיטה זו מעבדת בקשות HTTP GET לכתובת /greeting. במילים אחרות, שיטה זו תעבוד אם מישהו ילך אל /greeting. שיטה זו מחזירה String. לפי Spring-MVC, שיטת הבקר חייבת להחזיר את שם התצוגה. לאחר מכן, Spring יחפש קובץ HTML באותו שם, שיוחזר כתגובה לבקשת HTTP. כפי שניתן לראות, השיטה שלנו מחזירה את שם דף האינטרנט שיצרנו קודם לכן - ברכה. השיטה שלנו לוקחת 2 טיעונים. בואו נסתכל עליהם: פרמטר 1: @RequestParam(name = "name", required = false, defaultValue = "World") שם מחרוזת. ההערה @RequestParam קובעת שהפרמטר String name הוא פרמטר url. הסוגריים של ההערות מציינים שהפרמטר הזה בכתובת האתר הוא אופציונלי (חובה = false), אם הוא נעדר, הערך של הפרמטר String name יהיה World (defaultValue = "World"), ואם הוא קיים, אז פרמטר זה ב-url ייקרא שם (שם = "שם") יכול להיות שיש כאן הרבה לא ברור. בואו ניתן דוגמאות. הטבלה למטה מראה מה יהיה הערך של פרמטר שם המחרוזת עבור אפשרויות שונות לגישה לכתובת /greeting (עם ובלי פרמטרים בכתובת ה-URL)
כתובת אתר לדוגמה ערך פרמטר שם מחרוזת
/בְּרָכָה עוֹלָם
/greeting?name=אמיגו אמיגו
/greeting?name=Zor זור
פרמטר 2: הפרמטר השני הוא Model model. פרמטר זה הוא מודל. מודל זה מורכב מבפנים מתכונות שונות. לכל תכונה יש שם וערך. משהו כמו צמדי מפתח-ערך. באמצעות פרמטר זה, אנו יכולים להעביר נתונים מקוד Java לדפי HTML. או, בטרמינולוגיה של MVC, העבר נתונים מהמודל לתצוגה. נותר לנתח את השורה האחרונה. הדרך בה אנו מעבירים נתונים מג'אווה ל-html או מדגם ל-View. גוף השיטה מכיל את השורה הבאה: model.addAttribute("name", name); כאן אנו יוצרים תכונה חדשה בשם name ומקצים לה את הערך של פרמטר השם. זכור, רק לאחרונה דנו בתג: <p th:text="'Hello, ' + ${name} + '!'" /> אמרנו שהערך של תג p יהיה הטקסט "Hello, " + הערך של משתנה השם, אותו נגדיר מקוד Java. אנו קובעים ערך זה באמצעות הקו model.addAttribute("name", name);

שלב 5. הפעל

כדי להפעיל, אנחנו צריכים להפעיל את השיטה הראשית במחלקה MvcDemoApplication: חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 9ביומני ההשקה, נראה שיישום האינטרנט שלנו התחיל ביציאה 8080: חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 10וזה אומר שאנחנו יכולים לעבור לדף בדפדפן: http:// localhost:8080 : חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 11כאן הוצג לנו העמוד index.html. בואו נעקוב אחר הקישור לברכה: חלק 8. כתיבת אפליקציה קטנה ב-spring-boot - 12עם המעבר הזה, הבקר שלנו עבד. לא העברנו פרמטרים דרך ה-URL, לכן, כפי שצוין בהערה, הערך של תכונת name קיבל את ערך ברירת המחדל World. כעת ננסה להעביר את הפרמטר דרך url: חלק 8. כתיבת אפליקציה קטנה בקפיץ-מגף - 13הכל עובד כמתוכנן. כעת נסה להתחקות אחר הנתיב של משתנה השם:
  1. המשתמש העביר את הערך של שם הפרמטר = Amigo -> דרך url
  2. הבקר עיבד את הפעולה שלנו, קיבל את משתנה השם והגדיר את תכונת המודל, עם השם שם והערך המקובל ->
  3. מהמודל, הנתונים הללו עברו ל-View, לעמוד greeting.html והוצגו למשתמש
זה הכל!

היום הכרנו לכם נושא די גדול ומעניין של MVC (דגם - תצוגה - בקר). זהו סוף הסדרה, שמטרתה להציג בפניכם את מה שאתם צריכים לדעת לפני שמתחילים בפיתוח Enterprise.

השאר נושאים שמעניינים אותך בתגובות - אנחנו נעשה את זה!

הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION