CodeGym /Java Blog /এলোমেলো /পার্ট 8. স্প্রিং বুট ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লি...
John Squirrels
লেভেল 41
San Francisco

পার্ট 8. স্প্রিং বুট ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখি

এলোমেলো দলে প্রকাশিত
এই উপাদানটি "এন্টারপ্রাইজ ডেভেলপমেন্টের ভূমিকা" সিরিজের সমাপ্তি অংশ। পূর্ববর্তী নিবন্ধ: পার্ট 8. স্প্রিং বুট - 1 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখিআসুন একটি উদাহরণ হিসাবে স্প্রিং এমভিসি ব্যবহার করে MVC-এর সহজতম বাস্তবায়ন দেখি। এটি করার জন্য, আমরা স্প্রিং বুট ব্যবহার করে একটি ছোট হ্যালো ওয়ার্ল্ড অ্যাপ্লিকেশন লিখব। আমি আপনাকে ধাপে ধাপে নির্দেশাবলী দেব, যাতে আপনি নিজেই সবকিছু পুনরাবৃত্তি করতে পারেন। প্রথমে, আমরা একটি ছোট অ্যাপ্লিকেশন লিখব, এবং তারপর আমরা এটি বিশ্লেষণ করব।

ধাপ 1. IntelliJ IDEA-তে একটি স্প্রিং বুট অ্যাপ্লিকেশন তৈরি করা।

একটি নতুন প্রকল্প তৈরি করতে ফাইল -> নতুন -> প্রকল্প… ব্যবহার করুন। যে উইন্ডোটি খোলে, সেখানে বাম দিকের মেনুতে, স্প্রিং ইনিশিয়ালাইজার নির্বাচন করুন এবং প্রকল্প SDK নির্বাচন করুন। Initializr পরিষেবা URL বিকল্পের জন্য ডিফল্ট ছেড়ে দিন। পার্ট 8. স্প্রিং বুট - 2 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখি"পরবর্তী" বোতামে ক্লিক করুন। পরবর্তী উইন্ডোতে, আমাদের প্রকল্প সেটিংস নির্বাচন করতে হবে। আমরা একটি Maven প্রকল্প আছে চলুন. টাইপ হিসাবে Maven প্রজেক্ট নির্বাচন করুন। গ্রুপ এবং আর্টিফ্যাক্ট ক্ষেত্রগুলি পূরণ করুন পরবর্তী ক্লিক করুন। পার্ট 8. স্প্রিং বুট - 3 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখিপরবর্তী উইন্ডোতে, আমাদের স্প্রিং ফ্রেমওয়ার্ক উপাদান নির্বাচন করতে হবে যা আমরা ব্যবহার করব। দুটি আমাদের জন্য যথেষ্ট:
  • স্প্রিং ওয়েব একটি উপাদান যা আমাদের ওয়েব অ্যাপ্লিকেশন তৈরি করতে দেয়। এই উপাদান স্প্রিং MVC অন্তর্ভুক্ত.
  • Thymeleaf আমাদের টেমপ্লেট ইঞ্জিন. এটি এমন একটি জিনিস যা আমাদের জাভা থেকে এইচটিএমএল পেজে ডেটা পাঠাতে দেয়
পার্ট 8. স্প্রিং বুট - 4 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখিপার্ট 8. স্প্রিং বুট - 5 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখিপরবর্তী উইন্ডোতে, ফাইল সিস্টেমে প্রকল্পের নাম এবং অবস্থান নির্বাচন করুন: পার্ট 8. স্প্রিং বুট - 6 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখি"সমাপ্তি" বোতামে ক্লিক করুন। প্রকল্প তৈরি করা হয়। আমরা নিম্নলিখিত প্রকল্প কাঠামোর সাথে শেষ করি: পার্ট 8. স্প্রিং বুট - 7 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখিএখানে আমরা 2টি ফাইলে আগ্রহী: pom.xml (ডিপ্লয়মেন্ট বর্ণনাকারী)। এই জিনিসটি আপনাকে আমাদের প্রকল্পে বিভিন্ন ফ্রেমওয়ার্ক থেকে দ্রুত এবং সহজে লাইব্রেরি আমদানি করতে দেয়। এটিও যেখানে আমরা আমাদের অ্যাপ্লিকেশনটি কীভাবে তৈরি করা হয় তা কনফিগার করি। আমাদের অ্যাপ্লিকেশনটি Maven ব্যবহার করে তৈরি করা হয়েছে, এবং pom.xml হল এই বিল্ড সিস্টেমের কনফিগারেশন ফাইল। জাভা ক্লাস হল 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, যা আমরা জাভা কোডে সেট করব।

ধাপ 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";
   }

}
একদিকে খুব কম কোড আছে, কিন্তু অন্যদিকে, অনেক কিছু চলছে। আমাদের বিশ্লেষণ শুরু করা যাক. @ কন্ট্রোলার টীকা নির্দেশ করে যে এই ক্লাসটি একটি নিয়ামক। বসন্তে, কন্ট্রোলাররা নির্দিষ্ট URL-এ নির্দেশিত HTTP অনুরোধগুলি প্রক্রিয়া করে। আমাদের ক্লাসে একটি helloWorldController পদ্ধতি রয়েছে যা @RequestMapping(value = "/greeting") টীকা দিয়ে চিহ্নিত করা হয়েছে। এই টীকাটি নির্দেশ করে যে এই পদ্ধতিটি /greeting URL-এ নির্দেশিত HTTP GET অনুরোধগুলি প্রক্রিয়া করে। অন্য কথায়, এই পদ্ধতিটি চালু করা হবে যদি কেউ নেভিগেট করে/অভিবাদন করে। এই পদ্ধতিটি একটি স্ট্রিং প্রদান করে। স্প্রিং এমভিসি অনুসারে, কন্ট্রোলার পদ্ধতিটি ভিউয়ের নাম ফেরত দেবে। এর পরে, স্প্রিং একই নামের একটি HTML ফাইলের সন্ধান করবে, যা এটি HTTP অনুরোধের প্রতিক্রিয়া হিসাবে ফিরে আসবে। আপনি দেখতে পারেন, আমাদের পদ্ধতি 2 টি আর্গুমেন্ট নেয়। আসুন সেগুলি একবার দেখে নেওয়া যাক: প্যারামিটার 1: @RequestParam(name = "name", required = false, defaultValue = "World") স্ট্রিং নাম। @RequestParam টীকা নির্দেশ করে যে স্ট্রিং নামের প্যারামিটারটি একটি URL প্যারামিটার। যদি টীকাটি নির্দেশ করে যে এই URL প্যারামিটারটি ঐচ্ছিক (প্রয়োজনীয় = মিথ্যা), তাহলে এটি অনুপস্থিত থাকলে, স্ট্রিং নামের প্যারামিটারের মান হবে "World" (defaultValue = "World")। যদি এটি উপস্থিত থাকে, তাহলে URL প্যারামিটার হবে "নাম" (নাম = "নাম")। আপনি এখানে বুঝতে পারেন না অনেক হতে পারে. এর কিছু উদাহরণ প্রদান করা যাক. নীচের সারণীটি দেখায় যে স্ট্রিং নামের প্যারামিটারের মান কী হবে, অ্যাক্সেস করার জন্য বিভিন্ন বিকল্পের সাথে (ইউআরএল প্যারামিটার সহ এবং ছাড়া)
উদাহরণ URL স্ট্রিং নামের মান
/ শুভেচ্ছা বিশ্ব
/অভিবাদন?নাম=অ্যামিগো আমিগো
/অভিবাদন?নাম=জোর জোর
পরামিতি 2: দ্বিতীয় প্যারামিটারটি একটি মডেল মডেল। এই পরামিতি কিছু মডেল. এই মডেলটি বিভিন্ন অভ্যন্তরীণ বৈশিষ্ট্য নিয়ে গঠিত। প্রতিটি বৈশিষ্ট্যের একটি নাম এবং একটি মান আছে। কী-মান জোড়ার মতো কিছু। আমরা জাভা কোড থেকে এইচটিএমএল পৃষ্ঠাগুলিতে ডেটা পাঠাতে এই প্যারামিটারটি ব্যবহার করতে পারি। অথবা, MVC পরিভাষা ব্যবহার করে, মডেল থেকে ভিউতে ডেটা পাঠান। এটা শুধুমাত্র শেষ লাইন পরীক্ষা অবশেষ. এইভাবে আমরা জাভা থেকে এইচটিএমএল, বা মডেল থেকে ভিউতে ডেটা পাঠাই। পদ্ধতিতে নিম্নলিখিত লাইন রয়েছে: model.addAttribute("name", name); এখানে আমরা নাম নামক একটি নতুন বৈশিষ্ট্য তৈরি করি এবং এটিকে নাম প্যারামিটারের মান নির্ধারণ করি। মনে রাখবেন, আমরা সম্প্রতি আলোচনা করেছি <p th:text = "'Hello,' + ${name} + '!'" /> যে আমরা বলেছি যে p ট্যাগের মান হল "হ্যালো," + নাম ভেরিয়েবলের মান, যা আমরা জাভা কোডে সেট করব। আমরা লাইন ব্যবহার করে এই মান সেট model.addAttribute("name", name);

ধাপ 5. চালান

শুরু করার জন্য, আমাদের MvcDemoApplication ক্লাসের মূল পদ্ধতিটি চালাতে হবে: পার্ট 8. স্প্রিং বুট - 9 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখিলগগুলিতে, আমরা দেখতে পাব যে আমাদের ওয়েব অ্যাপ্লিকেশনটি পোর্ট 8080 এ শুরু হয়েছে: এবং এর মানে হল যে একটি ব্রাউজারে, আমরা http://পার্ট 8. স্প্রিং বুট - 10 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখি এ পৃষ্ঠায় যেতে পারি localhost:8080 : পার্ট 8. স্প্রিং বুট - 11 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখিএখানে আমাদের index.html পেজ আছে। আসুন অভিবাদন পৃষ্ঠার লিঙ্কটি অনুসরণ করি: পার্ট 8. স্প্রিং বুট - 12 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখিএই পরিবর্তনে আমাদের নিয়ন্ত্রককে আহ্বান করা হয়েছিল। আমরা URL এর মাধ্যমে কোনো প্যারামিটার পাস করিনি। ফলস্বরূপ, নামের বৈশিষ্ট্যটি টীকাতে নির্দেশিত ডিফল্ট মান ("বিশ্ব") গ্রহণ করে। ইউআরএল-এর মাধ্যমে প্যারামিটার পাস করার চেষ্টা করা যাক: পার্ট 8. স্প্রিং বুট - 13 ব্যবহার করে একটি ছোট অ্যাপ্লিকেশন লিখিসবকিছুই উদ্দেশ্য অনুযায়ী কাজ করে। এখন নামের ভেরিয়েবলের পথটি ট্রেস করার চেষ্টা করুন:
  1. ব্যবহারকারী URL ->-এ "name=Amigo" পাস করেছে
  2. কন্ট্রোলার আমাদের অ্যাকশন প্রক্রিয়া করেছে, নাম পরিবর্তনশীল পেয়েছে এবং প্রাপ্ত মানের সমান নাম নামক একটি মডেল অ্যাট্রিবিউট সেট করেছে ->
  3. এই ডেটা মডেল থেকে দেখতে এসেছে, greeting.html পৃষ্ঠায় শেষ হয়েছে এবং ব্যবহারকারীর কাছে প্রদর্শিত হয়েছে
আপাতত এই পর্যন্ত!

আজ আমরা MVC (মডেল - ভিউ - কন্ট্রোলার) এর বরং বড় এবং আকর্ষণীয় বিষয়ের সাথে পরিচিত হয়েছি। এন্টারপ্রাইজ ডেভেলপমেন্ট শুরু করার আগে আপনার যা জানা দরকার তার সাথে আপনাকে পরিচয় করিয়ে দেওয়ার জন্য ডিজাইন করা এই সিরিজের শেষ।

মন্তব্যে, আপনি কোন বিষয়ে আগ্রহী তা আমাদের বলুন — আমরা সেগুলিকে সম্বোধন করব!

মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION