JavaRush /وبلاگ جاوا /Random-FA /قسمت 8. نوشتن یک برنامه کوچک در فنر بوت

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

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

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

با استفاده از File -> New -> Project... یک پروژه جدید ایجاد کنید. در پنجره باز شده در منوی سمت چپ گزینه Spring Initializr را انتخاب کرده و Project SDK را انتخاب کرده و گزینه Initializr Service URL را به عنوان پیش فرض رها کنید. قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 2روی دکمه Next کلیک کنید. در پنجره بعدی باید پارامترهای پروژه را انتخاب کنیم. ما یک پروژه Maven خواهیم داشت. Type - Maven Project را انتخاب کنید، Group and Artifact را پر کنید قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 3و روی Next کلیک کنید. در پنجره بعدی باید اجزای Spring Framework را که از آنها استفاده خواهیم کرد انتخاب کنیم. ما فقط به دو مورد نیاز داریم:
  • Spring Web مؤلفه ای است که به ما امکان ایجاد برنامه های کاربردی وب را می دهد. این کامپوننت شامل Spring MVC می باشد.
  • Thymeleaf - به اصطلاح موتور قالب. چیزی که به ما امکان می دهد داده ها را از جاوا به صفحات HTML منتقل کنیم
قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 4قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 5در پنجره بعدی نام و محل پروژه را در فایل سیستم انتخاب کنید: قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 6روی دکمه Finish کلیک کنید. پروژه ایجاد شده است. ما ساختار پروژه زیر را داریم: قسمت 8. نوشتن یک برنامه کوچک در Spring-boot - 7در اینجا ما به 2 فایل علاقه مندیم: pom.xml - Deployment Descriptor. چیزی که به شما امکان می دهد به سرعت و به راحتی کتابخانه ها را از چارچوب های مختلف به پروژه خود وارد کنید، و همچنین چیزی که در آن اسمبلی برنامه خود را پیکربندی می کنیم. برنامه ما با استفاده از Maven ساخته شده است، pom.xml فایل پیکربندی این سیستم ساخت است. کلاس جاوا - MvcDemoApplication. این کلاس اصلی برنامه ما است که از آن پروژه بهار بوت خود را راه اندازی خواهیم کرد. برای شروع، فقط متد main را در این کلاس اجرا کنید. در اینجا کد این کلاس و همچنین فایل 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} + '!'" /> ویژگی thtag 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 نشان می دهد که این کلاس یک کنترلر است. کنترلرها در Spring درخواست های HTTP را به آدرس های خاص پردازش می کنند. کلاس ما یک متد helloWorldController دارد که با حاشیه نویسی - @RequestMapping(value = "/greeting") مشخص شده است. این حاشیه به ما می گوید که این روش درخواست های HTTP GET را به آدرس /greeting پردازش می کند. به عبارت دیگر، اگر کسی به /greeting برود، این روش کار خواهد کرد. این متد String را برمی گرداند. طبق Spring-MVC، متد کنترلر باید نام view را برگرداند. در مرحله بعد، Spring به دنبال یک فایل html با همین نام می گردد که به عنوان پاسخی به درخواست HTTP برگردانده می شود. همانطور که می بینید، روش ما نام صفحه وب را که قبلا ایجاد کرده بودیم - احوالپرسی برمی گرداند. روش ما 2 آرگومان می گیرد. بیایید به آنها نگاه کنیم: پارامتر 1: @RequestParam (نام = "نام"، الزامی = نادرست، مقدار پیش فرض = "جهان") نام رشته. حاشیه نویسی @RequestParam بیان می کند که پارامتر String name یک پارامتر url است. پرانتز حاشیه نویسی نشان می دهد که این پارامتر در URL اختیاری است (لازم = نادرست)، در صورت عدم وجود، مقدار پارامتر String name خواهد بود World (defaultValue = "World") و اگر موجود باشد، این پارامتر خواهد بود. در url نام نامیده می شود (نام = "نام") ممکن است موارد زیادی در اینجا نامشخص باشد. بیایید مثال بزنیم. جدول زیر نشان می دهد که مقدار پارامتر String name برای گزینه های مختلف برای دسترسی به آدرس /greeting چقدر خواهد بود (با و بدون پارامتر در URL)
URL مثال مقدار پارامتر نام رشته
/احوالپرسی جهان
/greeting?name=Amigo آمیگو
/سلام؟name=زور زور
پارامتر 2: پارامتر دوم Model model است. این پارامتر یک مدل است. این مدل در داخل از ویژگی های مختلفی تشکیل شده است. هر ویژگی یک نام و یک مقدار دارد. چیزی شبیه جفت های کلید-مقدار. با استفاده از این پارامتر می توانیم داده ها را از کد جاوا به صفحات html منتقل کنیم. یا در اصطلاح MVC داده ها را از Model به View منتقل کنید. باقی مانده است که آخرین خط را تجزیه کنیم. روشی که داده ها را از جاوا به html یا از مدل به View منتقل می کنیم. بدنه متد شامل خط زیر است: model.addAttribute("name", name); در اینجا یک ویژگی جدید به نام name ایجاد می کنیم و مقدار پارامتر name را به آن اختصاص می دهیم. به یاد داشته باشید، اخیراً در مورد تگ بحث کردیم: <p th:text="'Hello, ' + ${name} + '!'" /> گفتیم که مقدار تگ p متن "Hello" + مقدار متغیر نام است که از کد جاوا تنظیم می کنیم. این مقدار را با استفاده از خط تنظیم می کنیم model.addAttribute("name", name);

مرحله 5. راه اندازی کنید

برای راه اندازی باید متد اصلی را در کلاس MvcDemoApplication اجرا کنیم: قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 9در لاگ های راه اندازی می بینیم که برنامه وب ما روی پورت 8080 شروع شده است: قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 10و این بدان معنی است که می توانیم به صفحه در مرورگر برویم: http:// localhost:8080 : قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 11در اینجا صفحه index.html برای ما نمایش داده شد. بیایید پیوند greetin را دنبال کنیم: قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 12در طول این انتقال، کنترلر ما کار کرد. ما هیچ پارامتری را از طریق URL ارسال نکردیم، بنابراین، همانطور که در حاشیه نویسی گفته شد، مقدار ویژگی name مقدار پیش فرض World را گرفت. بیایید اکنون سعی کنیم پارامتر را از طریق url منتقل کنیم: قسمت 8. نوشتن یک برنامه کوچک در فنر بوت - 13همه چیز همانطور که در نظر گرفته شده است کار می کند. حالا سعی کنید مسیر متغیر name را دنبال کنید:
  1. کاربر مقدار نام پارامتر = Amigo -> را از طریق url ارسال کرد
  2. کنترلر اقدام ما را پردازش کرد، متغیر نام را پذیرفت و ویژگی مدل را با نام نام و مقدار پذیرفته شده تنظیم کرد ->
  3. از مدل، این داده ها به View، به صفحه greeting.html رفته و به کاربر نمایش داده می شود
همین!

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

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

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