CodeGym /وبلاگ جاوا /Random-FA /قسمت 8. بیایید یک برنامه کوچک با استفاده از Spring Boot ب...
John Squirrels
مرحله
San Francisco

قسمت 8. بیایید یک برنامه کوچک با استفاده از Spring Boot بنویسیم

در گروه منتشر شد
این مطلب قسمت پایانی مجموعه «مقدمه ای بر توسعه سازمانی» است. مقالات قبلی: قسمت 8. بیایید یک برنامه کوچک با استفاده از Spring Boot - 1 بنویسیمبیایید به ساده ترین پیاده سازی MVC با استفاده از Spring MVC به عنوان مثال نگاه کنیم. برای انجام این کار، یک برنامه کوچک Hello World با استفاده از Spring Boot می نویسیم. من دستورالعمل های گام به گام را به شما می دهم تا بتوانید همه چیز را خودتان تکرار کنید. ابتدا یک برنامه کوچک می نویسیم و سپس آن را تجزیه و تحلیل می کنیم.

مرحله 1. ایجاد یک برنامه Spring Boot در IntelliJ IDEA.

از File -> New -> Project… برای ایجاد یک پروژه جدید استفاده کنید. در پنجره باز شده در منوی سمت چپ گزینه Spring Initializr را انتخاب کرده و Project SDK را انتخاب کنید. پیش فرض را برای گزینه Initializr Service URL بگذارید. قسمت 8. بیایید یک برنامه کوچک با استفاده از Spring Boot - 2 بنویسیمروی دکمه "بعدی" کلیک کنید. در پنجره بعدی باید تنظیمات پروژه را انتخاب کنیم. ما یک پروژه Maven خواهیم داشت. Maven Project را به عنوان نوع انتخاب کنید. فیلدهای Group و Artifact را پر کنید روی Next کلیک کنید. قسمت 8. بیایید یک برنامه کوچک با استفاده از Spring Boot - 3 بنویسیمدر پنجره بعدی باید کامپوننت های 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 فایل پیکربندی این سیستم ساخت است. کلاس جاوا MvcDemoApplication است. این کلاس اصلی برنامه ما است. ما پروژه Spring Boot خود را از آن راه اندازی خواهیم کرد. برای شروع، فقط متد اصلی این کلاس را اجرا کنید. در اینجا کد این کلاس و همچنین فایل 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>

مرحله 2. ایجاد یک صفحه وب

برنامه ما بسیار ساده خواهد بود. ما یک صفحه اصلی (index.html) خواهیم داشت که حاوی پیوندی به صفحه خوش آمدگویی (greeting.html) است. در صفحه احوالپرسی یک تبریک نمایش می دهیم. ما از پارامترهای URL برای ارسال نام مورد استفاده در تبریک به صفحه greeting.html استفاده می کنیم. بیایید صفحه اصلی برنامه خود را ایجاد کنیم - 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>
صفحه ما دارای یک <p th:text="'Hello, ' + ${name} + '!'" />برچسب است که برای HTML عادی نیست. ویژگی thتگ pمکانیزمی است که توسط موتور قالب Thymeleaf استفاده می شود. مقدار تگ p"Hello" + مقدار متغیر خواهد بود nameکه در کد جاوا تنظیم می کنیم.

مرحله 3. ایجاد یک کنترلر

در داخل بسته mvc_demo، یک بسته کنترل کننده ایجاد می کنیم که در آن کنترلر خود 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 نشان می دهد که این کلاس یک کنترلر است. در بهار، کنترل‌کننده‌ها درخواست‌های HTTP را که به URL‌های خاص هدایت می‌شوند، پردازش می‌کنند. کلاس ما یک متد helloWorldController دارد که با حاشیه‌نویسی @RequestMapping(value = "/greeting") مشخص شده است. این حاشیه‌نویسی نشان می‌دهد که این روش درخواست‌های HTTP GET را به آدرس /greeting URL پردازش می‌کند. به عبارت دیگر، اگر شخصی به /greeting هدایت شود، این روش فراخوانی می شود. این متد یک رشته را برمی گرداند. طبق Spring MVC، متد کنترلر باید نام view را برگرداند. در مرحله بعد، Spring به دنبال یک فایل HTML با همین نام می گردد که به عنوان پاسخ به درخواست HTTP برمی گردد. همانطور که می بینید، روش ما نام صفحه وب را که قبلا ایجاد کرده بودیم برمی گرداند: greeting. روش ما 2 آرگومان می گیرد. بیایید نگاهی به آنها بیندازیم: پارامتر 1: @RequestParam (نام = "نام"، الزامی = نادرست، پیش‌فرض ارزش = "جهان") نام رشته. حاشیه نویسی @RequestParam نشان می دهد که پارامتر نام رشته یک پارامتر URL است. اگر حاشیه‌نویسی نشان می‌دهد که این پارامتر URL اختیاری است (الزامی = نادرست)، سپس اگر وجود نداشته باشد، مقدار پارامتر String name "World" خواهد بود (defaultValue = "World"). اگر وجود داشته باشد، پارامتر URL "نام" (نام = "نام") خواهد بود. ممکن است در اینجا چیزهای زیادی وجود داشته باشد که شما نفهمید. بیایید چند مثال ارائه دهیم. جدول زیر مقدار پارامتر String name را با گزینه های مختلف برای دسترسی به /greeting (با و بدون پارامترهای URL) نشان می دهد.
URL مثال مقدار نام رشته
/احوالپرسی جهان
/greeting?name=Amigo آمیگو
/سلام؟name=زور زور
پارامتر 2: پارامتر دوم یک مدل مدل است. این پارامتر یک مدل است. این مدل از ویژگی های داخلی مختلفی تشکیل شده است. هر ویژگی یک نام و یک مقدار دارد. چیزی شبیه جفت های کلید-مقدار. ما می توانیم از این پارامتر برای ارسال داده ها از کد جاوا به صفحات HTML استفاده کنیم. یا با استفاده از اصطلاحات MVC، داده ها را از مدل به view ارسال کنید. تنها بررسی خط آخر باقی مانده است. نحوه ارسال داده ها از جاوا به HTML یا از مدل به view است. متد شامل خط زیر است: model.addAttribute("name", name); در اینجا یک ویژگی جدید به نام name ایجاد می کنیم و مقدار پارامتر name را به آن اختصاص می دهیم. به یاد داشته باشید، اخیراً در مورد We <p th:text = "'Hello,' + ${name} + '!'" /> گفتیم که مقدار تگ p "Hello," + مقدار متغیر نام است که در کد جاوا تنظیم می کنیم. این مقدار را با استفاده از خط تنظیم می کنیم 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. بیایید یک برنامه کوچک با استفاده از Spring Boot - 13 بنویسیمهمه چیز همانطور که در نظر گرفته شده است کار می کند. حالا سعی کنید مسیر متغیر name را دنبال کنید:
  1. کاربر "name=Amigo" را در URL -> ارسال کرد
  2. کنترل کننده اقدام ما را پردازش کرد، متغیر نام را دریافت کرد و یک ویژگی مدل به نام name برابر با مقدار دریافتی تنظیم کرد ->
  3. این داده‌ها از مدل مشاهده می‌شوند و به صفحه greeting.html ختم می‌شوند و به کاربر نمایش داده می‌شوند.
فعلا همین!

امروز با مبحث نسبتاً بزرگ و جالب MVC (Model - View - Controller) آشنا شدیم. این پایان مجموعه ای است که برای معرفی شما با آنچه باید قبل از شروع توسعه سازمانی بدانید، طراحی شده است.

در نظرات، به ما بگویید که به کدام موضوعات علاقه دارید - ما به آنها خواهیم پرداخت!

نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION