English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring MVC هو إطار عمل Java يستخدم لبناء تطبيقات الويب. يتبع تصميم Model-View-Controller. إنه يحتوي على جميع الوظائف الأساسية لإطار عمل Spring مثل التدوير العكسي للتحكم، التدوير العكسي للإعتماد.
Spring MVC من خلال DispatcherServlet يقدم حلًا ممتازًا لاستخدام MVC في إطار Spring. >. هنا، DispatcherServlet هي صفحة كلاس تستقبل الطلبات المدخلة وتقوم بتحويلها إلى المصادر الصحيحة مثل المسؤول، النموذج والرؤية.
النموذج-النموذج يحتوي على بيانات التطبيق. يمكن أن تكون البيانات عنصرًا واحدًا أو مجموعة من العناصر. المستشار-المستشار يحتوي على منطق التطبيق للتطبيق. هنا، يستخدم التعليق @Controller لتمييز الصفحة كمسؤول. الرؤية-الرؤية تعبر عن المعلومات المقدمة بتشكيل معين. عادة ما يستخدم JSP + JSTL لإنشاء صفحات الرؤية. على الرغم من أن Spring تدعم أيضًا تقنيات عرض أخرى مثل Apache Velocity، Thymeleaf و FreeMarker. مدير الواجهة الأمامية- في Spring Web MVC، يتم استخدام فئة DispatcherServlet كـ مدير تحكم أمامي. وهي مسؤولة عن إدارة عملية تطبيق Spring MVC.
كما يظهر في الشكل، يتم توقيف جميع الطلبات المدخلة بواسطة Servlet مدير التوزيع للمدير الأمامي. يستلم Servlet مدير التوزيع المدخلات لمسار المدير ويقوم بتوجيه الطلبات إلى مدير التحكم. ي�回ل مدير التحكم جسم ModelAndView. يتحقق Servlet مدير التوزيع من المدخل لـ محلل الرؤية في ملف XML ويقوم بتكليف العنصر المحدد.
دعونا نرى بعض المزايا لـ Spring MVC Framework: -
فصل الأدوار- يفصل Spring MVC كل دور، يمكن أن يتم تنفيذ كل دور بواسطة جسم معين، مثل جسم النموذج، مدير التحكم، جسم الأمر، محلل الرؤية، Servlet مدير التوزيع، مدير التحقق، إلخ. خفيف- يستخدم خادم servlet خفيف لتطوير وتنفيذ تطبيقك. تكوين قوي- يقدم تكوين موثوق للفئات والأجهزة الأخرى، بما في ذلك الاستدلال البسيط عبر النطاق، مثل من مدير التحكم Web إلى جسم الأعمال والمدقق. التطوير السريع- يسرع Spring MVC من عملية التطوير المتوازي. كود أعمال قابلة للإعادة الاستخدام- دون إنشاء جسم جديد، يجعلنا نستطيع استخدام جسم أعمال موجود. سهولة الاختبار- في Spring، عادةً ما ننشئ فئات JavaBeans، مما يتيح لك إدراج بيانات اختبارية باستخدام طرق الـ setter. تحويل مرن- يقدم تعليقات معينة تجعل التحويل إلى الصفحات سهلة.
دعونا نرى مثالاً بسيطاً لـ Spring Web MVC Framework. الخطوات التالية:
تحميل ملف jar لـ spring في Maven أو إضافة التبعية إنشاء فئة контролر توفير المدخل لل控制器 في ملف web.xml تحديد bean في ملف XML منفصل عرض الرسالة في صفحة JSP إطلاق الخادم وتركيب المشروع
للشروع في هذا المثال، تحتاج إلى تحميل:
ملف jar لـ Spring Core ملف jar لـ Spring Web ملفات jar لـ JSP + JSTL (إذا كنت تستخدم تقنية عرض أخرى، فتحميل jar المطلوب).
تحميل جميع ملفات jar لـ Spring، بما في ذلك JSP و JSTL.
إذا كنت تستخدم Maven، لا تحتاج إلى إضافة ملفات jar. الآن، تحتاج إلى إضافة إدخالات الاعتماد Maven إلى ملف pom.xml.
pom.xml
<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 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.w3codebox</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> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.1.1.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> </dependencies> <build> <finalName>SpringMVC</finalName> </build> </project>
لإنشاء كلاس السيطرة، نستخدم تعليقات @Controller و @RequestMapping.
@Controller ملاحظة تُستخدم لتمييز هذا الكلاس كـ Controller.
@RequestMapping ملاحظة تستخدم لتوصيف الكلاسات التي تحتوي على URL المحددة.
HelloController.java
package com.w3codebox; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping("/") public String display() { return "index"; } }
في هذا ملف xml، نحدد Servlet Class DispatcherServlet ليكون مدير الواجهة الأمامية لـ Spring Web MVC. جميع الطلبات المدخلة إلى ملف html ستتم إعادة توجيهها إلى DispatcherServlet.
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <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>
هذا ملف الإعدادات المهم، يجب تحديد مكون عرض فيه.
عنصر context: component-scan يحدد الحزمة الأساسية لـ DispatcherServlet. سيتم البحث عن كلاسي تحتوي على كلمة Controller.
هذا الملف XML يجب أن يكون في مجلد WEB-INF.
spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- Provide support for component scanning --> <context:component-scan base-package="com.w3codebox" /> <!-- Provide support for conversion, formatting and validation --> <mvc:annotation-driven/> </beans>
هذه صفحة JSP بسيطة تظهر الرسالة التي أعادتها التحكمة.
index.jsp
<html> <body> <p>مرحبًا بك في دليل Spring MVC</p> </body> </html>
الإخراج:
MVC Spring
نموذج MVC
تطبيق MVC Spring
تحقق MVC
Tiles MVC