यह सामग्री "उद्यम विकास का परिचय" श्रृंखला का अंतिम भाग है। पिछले लेख:
आइए एक उदाहरण के रूप में स्प्रिंग एमवीसी का उपयोग करते हुए एमवीसी के सबसे सरल कार्यान्वयन को देखें। ऐसा करने के लिए, हम स्प्रिंग बूट का उपयोग करके एक छोटा हैलो वर्ल्ड एप्लिकेशन लिखेंगे। मैं आपको चरण-दर-चरण निर्देश दूंगा, ताकि आप स्वयं सब कुछ दोहरा सकें। सबसे पहले, हम एक छोटा अनुप्रयोग लिखेंगे, और फिर हम इसका विश्लेषण करेंगे।
चरण 1. IntelliJ IDEA में स्प्रिंग बूट एप्लिकेशन बनाना।
नया प्रोजेक्ट बनाने के लिए File -> New -> Project… का उपयोग करें। खुलने वाली विंडो में, बाईं ओर के मेनू में, स्प्रिंग इनिशियलाइज़र का चयन करें और प्रोजेक्ट एसडीके का चयन करें। Initializr Service URL विकल्प के लिए डिफ़ॉल्ट छोड़ दें।
"अगला" बटन पर क्लिक करें। अगली विंडो में, हमें प्रोजेक्ट सेटिंग्स का चयन करना होगा। हमारे पास मावेन प्रोजेक्ट होने वाला है। मावेन प्रोजेक्ट को प्रकार के रूप में चुनें। समूह और आर्टिफैक्ट फ़ील्ड भरें अगला क्लिक करें।
अगली विंडो में, हमें उन स्प्रिंग फ्रेमवर्क घटकों का चयन करना होगा जिनका हम उपयोग करेंगे। दो हमारे लिए काफी हैं:
- स्प्रिंग वेब एक ऐसा घटक है जो हमें वेब एप्लिकेशन बनाने देता है। इस घटक में स्प्रिंग एमवीसी शामिल है।
- थाइमेलीफ हमारा टेम्पलेट इंजन है। यह एक ऐसी चीज है जो हमें जावा से एचटीएमएल पेजों पर डेटा भेजने देती है
अगली विंडो में, फ़ाइल सिस्टम में प्रोजेक्ट का नाम और स्थान चुनें:
"फिनिश" बटन पर क्लिक करें। प्रोजेक्ट बनाया गया है। हम निम्नलिखित परियोजना संरचना के साथ समाप्त होते हैं:
यहां हम 2 फाइलों में रुचि रखते हैं: pom.xml (परिनियोजन विवरणक)। यह चीज़ आपको हमारी परियोजना में विभिन्न रूपरेखाओं से जल्दी और आसानी से पुस्तकालयों को आयात करने देती है। यह वह जगह भी है जहां हम कॉन्फ़िगर करते हैं कि हमारा एप्लिकेशन कैसे बनाया गया है। हमारा एप्लिकेशन मावेन का उपयोग करके बनाया गया है, और pom.xml इस बिल्ड सिस्टम के लिए कॉन्फ़िगरेशन फ़ाइल है। जावा वर्ग MvcDemoAplication है। यह हमारे आवेदन का मुख्य वर्ग है। हम इससे अपना स्प्रिंग बूट प्रोजेक्ट लॉन्च करेंगे। शुरू करने के लिए, बस इस वर्ग की मुख्य विधि चलाएँ। यहाँ इस वर्ग के लिए कोड है, साथ ही pom.xml फ़ाइल: MvcDemoApplication:
@SpringBootApplication
public class MvcDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MvcDemoApplication.class, args);
}
}
पोम.एक्सएमएल:
<?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) होगा, जिसमें स्वागत पृष्ठ (ग्रीटिंग.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>
अब हम ग्रीटिंग.एचटीएमएल पेज बनाएंगे:
<!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
टेम्पलेट इंजन द्वारा उपयोग की जाने वाली एक तंत्र है। टैग
p
का मान "हैलो," + वेरिएबल का मान होगा
name
, जिसे हम Java कोड में सेट करेंगे।
चरण 3. एक नियंत्रक बनाना
Mvc_demo पैकेज के अंदर, हम एक कंटोलर पैकेज बनाएंगे, जिसमें हम अपना कंट्रोलर, हैलोवर्ल्डकंट्रोलर बनाएंगे:
@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";
}
}
एक ओर बहुत कम कोड है, लेकिन दूसरी ओर बहुत कुछ चल रहा है। आइए अपना विश्लेषण शुरू करें। @ नियंत्रक एनोटेशन इंगित करता है कि यह वर्ग एक नियंत्रक है। स्प्रिंग में, नियंत्रक विशिष्ट URL पर निर्देशित HTTP अनुरोधों को संसाधित करते हैं। हमारी कक्षा में एक हैलोवर्ल्डकंट्रोलर विधि है जिसे @RequestMapping(value = "/ग्रीटिंग") एनोटेशन के साथ चिह्नित किया गया है। यह एनोटेशन इंगित करता है कि यह विधि /ग्रीटिंग URL पर निर्देशित HTTP GET अनुरोधों को संसाधित करती है। दूसरे शब्दों में, यदि कोई व्यक्ति/अभिवादन करने के लिए नेविगेट करता है तो इस विधि को लागू किया जाएगा। यह विधि एक स्ट्रिंग लौटाती है। स्प्रिंग एमवीसी के अनुसार, नियंत्रक विधि को दृश्य का नाम वापस करना चाहिए। अगला, स्प्रिंग उसी नाम के साथ एक HTML फ़ाइल की तलाश करेगा, जिसे वह HTTP अनुरोध के जवाब के रूप में लौटाएगा। जैसा कि आप देख सकते हैं, हमारी विधि 2 तर्क लेती है। आइए उन पर एक नज़र डालें: पैरामीटर 1: @RequestParam(name = "name", needed = false, defaultValue = "World") String name. @RequestParam एनोटेशन इंगित करता है कि स्ट्रिंग नाम पैरामीटर एक URL पैरामीटर है। यदि एनोटेशन इंगित करता है कि यह URL पैरामीटर वैकल्पिक (आवश्यक = गलत) है, तो यदि यह अनुपस्थित है, तो स्ट्रिंग नाम पैरामीटर का मान "वर्ल्ड" (डिफ़ॉल्ट वैल्यू = "वर्ल्ड") होगा। यदि यह मौजूद है, तो URL पैरामीटर "नाम" (नाम = "नाम") होगा। यहां बहुत कुछ हो सकता है जो आपको समझ में न आए। आइए कुछ उदाहरण देते हैं। नीचे दी गई तालिका से पता चलता है कि स्ट्रिंग नाम पैरामीटर का मान क्या होगा, एक्सेस/ग्रीटिंग के विभिन्न विकल्पों के साथ (यूआरएल पैरामीटर के साथ और बिना)
उदाहरण यूआरएल |
स्ट्रिंग नाम का मान |
/अभिवादन |
दुनिया |
/ग्रीटिंग?नाम=अमीगो |
एमिगो |
/अभिवादन?नाम=Zor |
जोर |
पैरामीटर 2: दूसरा पैरामीटर मॉडल मॉडल है। यह पैरामीटर कुछ मॉडल है। इस मॉडल में विभिन्न आंतरिक गुण होते हैं। प्रत्येक विशेषता का एक नाम और एक मान होता है। की-वैल्यू पेयर जैसा कुछ। हम जावा कोड से एचटीएमएल पेजों पर डेटा भेजने के लिए इस पैरामीटर का उपयोग कर सकते हैं। या, एमवीसी शब्दावली का उपयोग करके, मॉडल से दृश्य में डेटा भेजें। यह केवल अंतिम पंक्ति की जांच करने के लिए बनी हुई है। यह है कि हम जावा से एचटीएमएल, या मॉडल से दृश्य में डेटा कैसे भेजते हैं। विधि में निम्न पंक्ति शामिल है:
model.addAttribute("name", name);
यहां हम नाम नामक एक नई विशेषता बनाते हैं और इसे नाम पैरामीटर का मान निर्दिष्ट करते हैं। याद रखें, हमने हाल ही में चर्चा की थी
<p th:text = "'Hello,' + ${name} + '!'" />
कि पी टैग का मान "हैलो," + नाम चर का मान है, जिसे हम जावा कोड में सेट करेंगे। हम इस मान को लाइन का उपयोग करके सेट करते हैं
model.addAttribute("name", name);
चरण 5. भागो
शुरू करने के लिए, हमें MvcDemoAplication क्लास की मुख्य विधि चलाने की आवश्यकता है:
लॉग में, हम देखेंगे कि हमारा वेब एप्लिकेशन पोर्ट 8080 पर शुरू हुआ है: और इसका मतलब है कि एक ब्राउज़र में, हम
http: // पर पेज पर जा सकते हैं।
लोकलहोस्ट: 8080 :
यहां हमारे पास index.html पेज है। आइए अभिवादन पृष्ठ के लिंक का अनुसरण करें:
हमारे नियंत्रक को इस संक्रमण में शामिल किया गया था। हमने URL से कोई पैरामीटर पास नहीं किया. नतीजतन, नाम विशेषता एनोटेशन में दर्शाए गए डिफ़ॉल्ट मान ("विश्व") पर ले जाती है। आइए यूआरएल के माध्यम से पैरामीटर पास करने का प्रयास करें:
सब कुछ इरादे के अनुसार काम करता है। अब नाम चर के पथ का पता लगाने का प्रयास करें:
- उपयोगकर्ता ने URL -> में "नाम = अमीगो" पारित किया
- नियंत्रक ने हमारी कार्रवाई को संसाधित किया, नाम चर प्राप्त किया, और प्राप्त मूल्य के बराबर नाम नामक एक मॉडल विशेषता सेट की ->
- यह डेटा मॉडल से देखने के लिए आया, ग्रीटिंग.एचटीएमएल पृष्ठ पर समाप्त हुआ, और उपयोगकर्ता को प्रदर्शित किया गया
अभी के लिए बस इतना ही!
आज हम MVC (मॉडल - व्यू - कंट्रोलर) के बड़े और दिलचस्प विषय से परिचित हुए। उद्यम विकास शुरू करने से पहले आपको जो जानने की आवश्यकता है, उससे आपको परिचित कराने के लिए डिज़ाइन की गई श्रृंखला का यह अंत है।
टिप्पणियों में, हमें बताएं कि आप किन विषयों में रुचि रखते हैं — हम उन्हें संबोधित करेंगे! |
GO TO FULL VERSION