ही सामग्री "एंटरप्राइज डेव्हलपमेंटची ओळख" मालिकेचा शेवटचा भाग आहे. मागील लेख: भाग 8. स्प्रिंग बूट - 1 वापरून एक छोटा अनुप्रयोग लिहूउदाहरण म्हणून स्प्रिंग MVC वापरून MVC ची सोपी अंमलबजावणी पाहू. हे करण्यासाठी, आम्ही स्प्रिंग बूट वापरून एक लहान हॅलो वर्ल्ड ऍप्लिकेशन लिहू. मी तुम्हाला चरण-दर-चरण सूचना देईन, जेणेकरून तुम्ही स्वतः सर्वकाही पुन्हा करू शकता. प्रथम, आम्ही एक लहान अनुप्रयोग लिहू, आणि नंतर आम्ही त्याचे विश्लेषण करू.

पायरी 1. IntelliJ IDEA मध्ये स्प्रिंग बूट ऍप्लिकेशन तयार करणे.

नवीन प्रकल्प तयार करण्यासाठी फाईल -> नवीन -> प्रोजेक्ट… वापरा. उघडणाऱ्या विंडोमध्ये, डाव्या बाजूच्या मेनूमध्ये, Spring Initializr निवडा आणि प्रोजेक्ट SDK निवडा. Initializr सेवा URL पर्यायासाठी डीफॉल्ट सोडा. भाग 8. स्प्रिंग बूट - 2 वापरून एक छोटा ऍप्लिकेशन लिहू"पुढील" बटणावर क्लिक करा. पुढील विंडोमध्ये, आम्हाला प्रकल्प सेटिंग्ज निवडण्याची आवश्यकता आहे. आमच्याकडे मावेन प्रकल्प असणार आहे. प्रकार म्हणून मावेन प्रोजेक्ट निवडा. ग्रुप आणि आर्टिफॅक्ट फील्ड भरा पुढे क्लिक करा. भाग 8. स्प्रिंग बूट - 3 वापरून एक छोटा अनुप्रयोग लिहूपुढील विंडोमध्ये, आपल्याला स्प्रिंग फ्रेमवर्क घटक निवडण्याची आवश्यकता आहे जे आपण वापरू. आमच्यासाठी दोन पुरेसे आहेत:
  • स्प्रिंग वेब हा एक घटक आहे जो आम्हाला वेब अनुप्रयोग तयार करू देतो. या घटकामध्ये स्प्रिंग एमव्हीसी समाविष्ट आहे.
  • Thymeleaf हे आमचे टेम्पलेट इंजिन आहे. ही एक गोष्ट आहे जी आम्हाला Java वरून HTML पृष्ठांवर डेटा पाठवू देते
भाग 8. स्प्रिंग बूट - 4 वापरून एक छोटा ऍप्लिकेशन लिहूभाग 8. स्प्रिंग बूट - 5 वापरून एक छोटा अनुप्रयोग लिहूपुढील विंडोमध्ये, फाइल सिस्टममध्ये प्रकल्पाचे नाव आणि स्थान निवडा: भाग 8. स्प्रिंग बूट - 6 वापरून एक छोटा ऍप्लिकेशन लिहू"समाप्त" बटणावर क्लिक करा. प्रकल्प तयार केला आहे. आम्ही खालील प्रोजेक्ट स्ट्रक्चरसह समाप्त करतो: भाग 8. स्प्रिंग बूट - 7 वापरून एक छोटा अनुप्रयोग लिहूयेथे आम्हाला 2 फाइल्समध्ये स्वारस्य आहे: pom.xml (डिप्लॉयमेंट डिस्क्रिप्टर). ही गोष्ट तुम्हाला आमच्या प्रोजेक्टमध्ये वेगवेगळ्या फ्रेमवर्कमधून लायब्ररी जलद आणि सहज इंपोर्ट करू देते. आमचा अनुप्रयोग कसा तयार केला जातो हे आम्ही कॉन्फिगर देखील करतो. आमचा अनुप्रयोग Maven वापरून तयार केला आहे, आणि pom.xml ही या बिल्ड सिस्टमसाठी कॉन्फिगरेशन फाइल आहे. Java वर्ग MvcDemoApplication आहे. हा आमच्या अर्जाचा मुख्य वर्ग आहे. त्यातून आम्ही आमचा स्प्रिंग बूट प्रकल्प सुरू करू. प्रारंभ करण्यासाठी, फक्त या वर्गाची मुख्य पद्धत चालवा. येथे या वर्गासाठी कोड आहे, तसेच 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). ग्रीटिंग पेजवर आम्ही ग्रीटिंग दाखवतो. आम्ही 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>
आमच्या पृष्ठावर एक <p th:text="'Hello, ' + ${name} + '!'" />टॅग आहे, जो HTML साठी सामान्य नाही. thटॅगची विशेषता ही pThymeleaf टेम्पलेट इंजिनद्वारे वापरली जाणारी यंत्रणा आहे. टॅगचे pमूल्य "हॅलो," + व्हेरिएबलचे मूल्य असेल name, जे आपण Java कोडमध्ये सेट करू.

पायरी 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 भाष्य सूचित करते की हा वर्ग एक नियंत्रक आहे. स्प्रिंगमध्ये, नियंत्रक विशिष्ट URL वर निर्देशित केलेल्या HTTP विनंत्यांवर प्रक्रिया करतात. आमच्या वर्गात helloWorldController पद्धत आहे जी @RequestMapping(value = "/greeting") भाष्याने चिन्हांकित आहे. हे भाष्य सूचित करते की ही पद्धत /greeting URL वर निर्देशित HTTP GET विनंत्यांवर प्रक्रिया करते. दुसर्‍या शब्दात, कोणीतरी/ग्रीटिंग वर नेव्हिगेट केल्यास ही पद्धत लागू केली जाईल. ही पद्धत स्ट्रिंग परत करते. स्प्रिंग MVC नुसार, कंट्रोलर पद्धतीने दृश्याचे नाव परत केले पाहिजे. पुढे, स्प्रिंग त्याच नावाची HTML फाइल शोधेल, जी ती HTTP विनंतीला प्रतिसाद म्हणून परत करेल. तुम्ही बघू शकता, आमची पद्धत 2 वितर्क घेते. चला त्यांच्याकडे एक नजर टाकूया: पॅरामीटर 1: @RequestParam(name = "name", required = false, defaultValue = "World") स्ट्रिंग नाव. @RequestParam भाष्य सूचित करते की स्ट्रिंग नाव पॅरामीटर हे URL पॅरामीटर आहे. जर भाष्य सूचित करते की हे URL पॅरामीटर पर्यायी आहे (आवश्यक = असत्य), तर ते अनुपस्थित असल्यास, स्ट्रिंग नाव पॅरामीटरचे मूल्य "वर्ल्ड" (डिफॉल्टव्हॅल्यू = "वर्ल्ड") असेल. ते उपस्थित असल्यास, URL पॅरामीटर "नाव" (नाव = "नाव") असेल. तुम्हाला इथे न समजणारे बरेच काही असू शकते. चला काही उदाहरणे देऊ. खालील सारणी स्ट्रिंग नेम पॅरामीटरचे मूल्य काय असेल ते दाखवते, प्रवेश/ग्रीटिंगसाठी विविध पर्यायांसह (URL पॅरामीटर्ससह आणि त्याशिवाय)
उदाहरण URL स्ट्रिंग नावाचे मूल्य
/ अभिवादन जग
/ग्रीटिंग?नाम=अमिगो अमिगो
/ग्रीटिंग?नाम=झोर झोर
पॅरामीटर 2: दुसरा पॅरामीटर एक मॉडेल मॉडेल आहे. हे पॅरामीटर काही मॉडेल आहे. या मॉडेलमध्ये विविध अंतर्गत गुणधर्मांचा समावेश आहे. प्रत्येक गुणधर्माला एक नाव आणि मूल्य असते. की-व्हॅल्यू जोड्यांसारखे काहीतरी. आम्ही हे पॅरामीटर Java कोडवरून HTML पृष्ठांवर डेटा पाठवण्यासाठी वापरू शकतो. किंवा, MVC शब्दावली वापरून, मॉडेलमधील डेटा दृश्याकडे पाठवा. हे फक्त शेवटच्या ओळीचे परीक्षण करणे बाकी आहे. आम्ही जावा वरून एचटीएमएल किंवा मॉडेलवरून व्ह्यूवर डेटा कसा पाठवतो. पद्धतीमध्ये खालील ओळ समाविष्ट आहे: model.addAttribute("name", name); येथे आपण नाव नावाची नवीन विशेषता तयार करतो आणि त्यास नाव पॅरामीटरचे मूल्य नियुक्त करतो. लक्षात ठेवा, आम्ही अलीकडेच <p th:text = "'Hello,' + ${name} + '!'" /> आम्ही सांगितले की p टॅगची व्हॅल्यू "हॅलो," + नाव व्हेरिएबलची व्हॅल्यू आहे, जी आपण Java कोडमध्ये सेट करू यावर चर्चा केली आहे. आम्ही ओळ वापरून हे मूल्य सेट करतो model.addAttribute("name", name);

पायरी 5. चालवा

प्रारंभ करण्यासाठी, आम्हाला MvcDemoApplication वर्गाची मुख्य पद्धत चालवावी लागेल: भाग 8. स्प्रिंग बूट - 9 वापरून एक छोटा अनुप्रयोग लिहूलॉगमध्ये, आम्ही आमचे वेब अनुप्रयोग पोर्ट 8080 वर सुरू झाल्याचे पाहू: भाग 8. स्प्रिंग बूट - 10 वापरून एक छोटा ऍप्लिकेशन लिहूआणि याचा अर्थ ब्राउझरमध्ये, आम्ही http:// वर पृष्ठावर जाऊ शकतो. localhost:8080 : भाग 8. स्प्रिंग बूट - 11 वापरून एक छोटा ऍप्लिकेशन लिहूयेथे आमच्याकडे index.html पृष्ठ आहे. ग्रीटिंग पेजच्या लिंकचे अनुसरण करूया: भाग 8. स्प्रिंग बूट - 12 वापरून एक छोटा अनुप्रयोग लिहूया संक्रमणामध्ये आमच्या कंट्रोलरला बोलावण्यात आले. आम्ही URL द्वारे कोणतेही पॅरामीटर्स पास केले नाहीत. परिणामी, नाव विशेषता भाष्यात दर्शविलेले डीफॉल्ट मूल्य ("वर्ल्ड") घेते. चला URL द्वारे पॅरामीटर पास करण्याचा प्रयत्न करूया: भाग 8. स्प्रिंग बूट - 13 वापरून एक छोटा अनुप्रयोग लिहूसर्वकाही हेतूनुसार कार्य करते. आता नाव व्हेरिएबलचा मार्ग शोधण्याचा प्रयत्न करा:
  1. वापरकर्त्याने URL -> मध्ये "name=Amigo" पास केले
  2. कंट्रोलरने आमच्या कृतीवर प्रक्रिया केली, नाव व्हेरिएबल प्राप्त केले आणि प्राप्त मूल्याच्या समान नाव नावाची मॉडेल विशेषता सेट केली ->
  3. हा डेटा मॉडेलवरून पाहण्यास आला, greeting.html पृष्ठावर समाप्त झाला आणि वापरकर्त्यास प्रदर्शित झाला
आतासाठी एवढेच!

आज आम्ही MVC (मॉडेल - व्ह्यू - कंट्रोलर) च्या ऐवजी मोठ्या आणि मनोरंजक विषयाशी परिचित झालो. एंटरप्राइझ डेव्हलपमेंट सुरू करण्यापूर्वी तुम्हाला काय माहित असणे आवश्यक आहे याची तुम्हाला ओळख करून देण्यासाठी डिझाइन केलेल्या मालिकेचा हा शेवट आहे.

टिप्पण्यांमध्ये, आपल्याला कोणत्या विषयांमध्ये स्वारस्य आहे ते आम्हाला सांगा — आम्ही त्यांना संबोधित करू!