یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی
🎯 ثبت نام

آموزش MVC Introduction-Java Spring

Spring MVC

معرفی MVC

آموزش MVC در اسپرینگ

MVC اسپرینگ یک فریمورک جاوا(java) است که برای ساخت برنامه های کاربردی تحت وب مورد استفاده قرار می گیرد و از الگو طراحی model-view-controller پیروی می کند. MVC تمام ویژگی های اولیه یک فریمورک هسته اسپرینگ مانند وارونگی کنترل(IOC) و تزریق وابستگی را پیاده سازی می کند.

MVC اسپرینگ یک راه حل ظریف برای استفاده از MVC در فریمورک اسپرینگ با کمک DispatcherServlet ارائه کرده است. در اینجا، DispatcherServlet یک کلاس است که درخواست ورودی را دریافت می کند و ان را به منبع درست مانند کنترلرها (controllers)، مدل ها(models) و منظرها (views) نگاشت می کند.


Spring web model-view-controller

مدل (model) :

یک مدل شامل داده های یک برنامه کاربردی است. داده می تواند یک شی تنها و یا مجموعه ای از اشیا باشد.


کنترلر(controller) :

یک کنترلر شامل business logic یک برنامه کاربردی است. در اینجا از نماد @Controller برای مشخص کردن یک کلاس به عنوان کنترلر استفاده می شود.


منظر(view) :

یک منظر ارائه دهنده اطلاعات ارائه شده در یک قالب خاص است. به طور کلی، از JSP+JSTL برای ایجاد یک صفحه منظر (view page) استفاده می شود. اگرچه اسپرینگ از سایر تکنولوژی های منظر مانند Apache Velocity ، Thymeleaf و FreeMarker پشتیبانی می کند.


کنترلر جلو(Front controller) :

در MVC تحت وب اسپرینگ، کلاس DispatcherServlet به عنوان کنترلر جلو کار می کند. وظیفه آن مدیریت روند برنامه کاربردی تحت وب اسپرینگ است.


درک روند MVC تحت وب اسپرینگ
  • همانطور که در شکل نشان داده شده است، تمام درخواست های ورودی توسط DispatcherServlet که به عنوان کنترلر جلو کار می کند، رهگیری می شوند.
  • DispatcherServlet از فایل xmlیک ورودی از نگاشت کننده (handler mapping) دریافت می کند و درخواست را به کنترلر می فرستد.
  • کنترلر یک شی ModelAndView را باز می گرداند.
  • DispatcherServlet ورودی تصمیم گیرنده منظر(view resolver) را در فایل xml بررسی می کند و یک مولفه معین از منظر را فراخوانی می کند.

مزیت های فریمورک MVC اسپرینگ

برخی از مزیت های MVC اسپرینگ را با هم می بینیم :

  • وظایف مجزا – MVC اسپرینگ هر وظیفه را مجزا می کند به طوری که شی مدل(model object)، کنترلر، شی دستور(command object)، تصمیم گیرنده منظر(view resolver)،DispatcherServlet ، اعتبار سنج(validator) و غیره می تواند توسط یک شی معین انجام شوند.
  • سبک بودن – از یک servlet container سبک برای توسعه و استقرار برنامه کاربردی شما استفاده می کند.
  • پیکربندی قدرتمند – یک پیکربندی مقاوم شامل ارجاع آسان به متون، مانند از کنترلر های وب به اشیای business و اعتبار سنج ها، برای فریمورک و کلاس های برنامه کاربردی ارائه می کند.
  • توسعه سریع – MVC اسپرینگ توسعه سریع و موازی را تسهیل می کند.
  • کد business قابل استفاده مجدد – به ما این امکان را می دهد تا به جای ایجاد اشیا جدید، از اشیای business موجود استفاده کنیم.
  • تست آسان – در اسپرینگ عموما برای تزریق داده تست با استفاده از متد setter ،کلاس های JavaBeans ایجاد می کنیم.
  • نگاشت انعطاف پذیر – نماد های خاصی برای هدایت آسان صفحه ارائه می کند.

مثال فریمورک MVC تحت وب اسپرینگ

مثالی ساده از فریمورک MVC تحت وب اسپرینگ را با هم می بینیم. مراحل به شرح زیر است:

  • فایل های jar اسپرینگ را بارگذاری کنید یا در صورت استفاده از Maven، وابستگی ها را اضافه کنید.
  • کلاس کنترلر را ایجاد کنید.
  • ورودی کنترلر را در فایل web.xml آماده کنید.
  • در یک فایل xml جداگانه، bean را تعریف کنید.
  • در صفحه JSP پیام را نمایش دهید.
  • سرور را شروع کنید و پروژه را مستقر کنید.

ساختار دایرکتوری MVC اسپرینگ
ساختار دایرکتوری MVC اسپرینگ با استفاده از Maven

فایل های jar مورد نیاز یا وابستگی Maven (Maven dependency)

برای اجرای این مثال نیاز به بارگذاری فایل های زیر دارید:

فایل های jar هسته اسپرینگ (spring core)، فایل های jar وب اسپرینگ (spring web) و فایل های jar JSP+JSTL (اگر از هر تکنولوژی منظر دیگری استفاده می کنید، فایل های jar مربوطه را بارگذاری کنید).

اگر از Maven استفاده می کنید، نیاز به اضافه کردن فایل های jar ندارید. حال باید وابستگی Maven را به فایل pom.xml اضافه کنید.


1- ارائه اطلاعات و پیکربندی پروژه در فایل pom.xml

pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
            2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
   < modelVersion>4.0.0< /modelVersion
   < groupId>com.javatpoint< /groupId
   < artifactId>SpringMVC< /artifactId
   < packaging>war< /packaging
   < version>0.0.1-SNAPSHOT< /version
   < name>SpringMVC Maven Webapp< /name
   < url>http://maven.apache.org< /url
   < dependencies
      < dependency
       < groupId>junit< /groupId
       < artifactId>junit< /artifactId
       < version>3.8.1< /version
       < scope>test< /scope
     < /dependency
        
< dependency
     < groupId>org.springframework< /groupId
     < artifactId>spring-webmvc< /artifactId
     < version>5.1.1.RELEASE< /version
< /dependency
    
< dependency>   
     < groupId>javax.servlet< /groupId>   
     < artifactId>servlet-api< /artifactId>   
     < version>3.0-alpha-1< /version>   
< /dependency
    
   < /dependencies
   < build
     < finalName>SpringMVC< /finalName
   < /build
< /project>
<button></button>

2- ایجاد کلاس کنترلر

برای ایجاد کلاس کنترلر، از دو نماد @Controller و @RequestMapping استفاده می کنیم. نماد @Controller کلاس را به عنوان کنترلر مشخص می کند. از نماد @Requestmapping برای نگاشت کلاس با نام URL مشخص شده استفاده می شود.

HelloController.java

1
2
3
4
5
6
7
8
9
10
11
12
package com.javatpoint; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
@Controller 
public class HelloController { 
@RequestMapping("/"
    public String display() 
    
        return "index"
    }    
<button></button>

3- آماده کردن ورودی کنترلر در فایل web.xml

در این فایل xml، کلاس servlet - DispatcherServlet که به عنوان کنترلر جلو در MVC تحت وب اسپرینگ عمل می کند را مشخص می کنیم. تمام درخواست های ورودی برای فایل html ، به DispatcherServlet فرستاده خواهد شد.

web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< ?xml version="1.0" encoding="UTF-8" ?>
   
   < display-name>SpringMVC< /display-name
    < servlet>   
     < servlet-name>spring< /servlet-name>   
     < servlet-class>org.springframework.web.servlet.DispatcherServlet< /servlet-class>   
     < load-on-startup>1< /load-on-startup>     
< /servlet>   
< servlet-mapping>   
     < servlet-name>spring< /servlet-name>   
     < url-pattern>/< /url-pattern>   
< /servlet-mapping>   
< /web-app>   
<button></button>

4- تعریف bean در فایل xml

این فایل پیکربندی مهمی است که در آن باید اجزای منظر (view) را مشخص کنیم. عنصر context:component-scan ، base-package را تعریف می کند، جایی که DispatcherServlet کلاس کنترلر را جستجو می کند. این فایل xml باید در دایرکتوری WEB-INF قرار گیرد.

spring-servlet.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
< ?xml version="1.0" encoding="UTF-8" ?>
   
          3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          4. xmlns:context="http://www.springframework.org/schema/context"
          5. xmlns:mvc="http://www.springframework.org/schema/mvc"
          6. xsi:schemaLocation="
    
     <!-- Provide support for component scanning --> 
     < context:component-scan base-package="com.javatpoint" />
   
    
     <!--Provide support for conversion, formatting and validation --> 
     < mvc:annotation-driven />
   
    
< /beans>     
<button></button>

5- نمایش پیام در صفحه JSP

این یک صفحه ساده JSP است که پیام بازگردانده شده توسط کنترلر را نمایش می دهد.

index.jsp

1
2
3
4
5
6
< html
< body
< p>Welcome to Spring MVC Tutorial< /p
< /body
< /html>     
<button></button>

خروجی :

Welcome to Spring MVC Tutorial
1398/12/28 4142 453
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...