Spring MVC কি?

Spring MVC এর পরিচিতি - স্প্রিং এমভিসি (Spring MVC) - Java Technologies

250

Spring MVC (Model-View-Controller) হল Spring Framework-এর একটি ওয়েব মডিউল, যা ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এটি Model-View-Controller (MVC) ডিজাইন প্যাটার্ন অনুসরণ করে, যা ডেটা, ব্যবসায়িক লজিক, এবং ইউজার ইন্টারফেস (UI) এর মধ্যে স্পষ্ট বিভাজন তৈরি করে।

Spring MVC মূলত ওয়েব অ্যাপ্লিকেশনগুলিতে ইউজার ইন্টারফেস এবং সার্ভিস লেয়ারের মধ্যে যোগাযোগ স্থাপন করে। এটি কন্ট্রোলারকে রিকোয়েস্টগুলি পরিচালনা করতে, মডেলকে ডেটা সংগ্রহ করতে এবং ভিউকে উপস্থাপন করতে সাহায্য করে।


Spring MVC এর মূল উপাদানসমূহ

  1. Model:
    • Model হলো ডেটা বা বিজনেস লজিকের প্রতিনিধিত্বকারী অংশ। এটি সার্ভিস লেয়ার বা ডেটাবেস থেকে ডেটা সংগ্রহ করে এবং ভিউতে (UI) উপস্থাপনের জন্য প্রস্তুত করে।
    • উদাহরণস্বরূপ: জাভা ক্লাস বা ডেটাবেস টেবিলগুলি যা অ্যাপ্লিকেশনের ডেটা ধারণ করে।
  2. View:
    • View হলো ইউজার ইন্টারফেস (UI)। এটি ব্যবহারকারীর কাছে ডেটা উপস্থাপন করে।
    • Spring MVC বিভিন্ন ভিউ টেকনোলজি সাপোর্ট করে, যেমন JSP, Thymeleaf, FreeMarker, ইত্যাদি।
  3. Controller:
    • Controller হলো ওয়েব অ্যাপ্লিকেশনের প্রবাহ পরিচালনা করে। এটি রিকোয়েস্ট গ্রহণ করে এবং উপযুক্ত ভিউ বা মডেল এর সাথে রেসপন্স প্রদান করে।
    • Spring MVC এ @Controller অ্যানোটেশন দ্বারা একে চিহ্নিত করা হয়।

Spring MVC এর কাজ করার পদ্ধতি

Spring MVC অ্যাপ্লিকেশন কিভাবে কাজ করে তা বুঝতে হলে প্রথমে মডেল, ভিউ এবং কন্ট্রোলার এর মধ্যে যোগাযোগের পদ্ধতি জানাটা গুরুত্বপূর্ণ।

  1. User Request:
    • ব্যবহারকারী তার ব্রাউজার থেকে একটি HTTP রিকোয়েস্ট পাঠায় (যেমন, GET বা POST রিকোয়েস্ট)।
  2. DispatcherServlet:
    • Spring MVC এর DispatcherServlet প্রথমে রিকোয়েস্ট গ্রহণ করে এবং এটি কন্ট্রোলারকে নির্দেশ দেয় যাতে সঠিক রেসপন্স প্রদান করা যায়।
  3. Controller:
    • কন্ট্রোলার রিকোয়েস্ট প্রসেস করে এবং Model (ডেটা) তৈরি করে। মডেলটি কন্ট্রোলারের মাধ্যমে ভিউতে পাঠানো হয়।
  4. View:
    • ভিউ ইঞ্জিন, যেমন JSP বা Thymeleaf, ব্যবহার করে ডেটা ইউজার ইন্টারফেসে প্রদর্শন করা হয়।
  5. Response:
    • একবার ডেটা ইউজার ইন্টারফেসে প্রেরিত হলে, DispatcherServlet সঠিক রেসপন্স (HTML বা JSON) ফিরিয়ে দেয়।

Spring MVC Configuration

Spring MVC কনফিগার করতে দুটি প্রধান উপায় রয়েছে:

  1. XML Configuration
  2. Annotation-based Configuration

1. Annotation-based Configuration (Recommended)

Spring 3.x থেকে Annotation-based Configuration জনপ্রিয় হয়ে উঠেছে, যা কনফিগারেশন এবং কোডের মধ্যে স্পষ্ট সম্পর্ক রাখে। সাধারণত Java Config ব্যবহার করা হয়।

DispatcherServlet Configuration:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class WebConfig implements WebMvcConfigurer {
    // Other configurations
}
  • @Configuration: ক্লাসটিকে কনফিগারেশন ক্লাস হিসেবে চিহ্নিত করে।
  • @EnableWebMvc: Spring MVC কার্যকর করে।
  • @ComponentScan: কন্ট্রোলার ক্লাসগুলির প্যাকেজে স্ক্যান করার জন্য নির্দেশনা দেয়।

Controller Example:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/home")
    public String home(Model model) {
        model.addAttribute("message", "Welcome to Spring MVC!");
        return "home"; // view name (home.jsp or home.html)
    }
}
  • @Controller: কন্ট্রোলার ক্লাস হিসাবে চিহ্নিত করে।
  • @GetMapping: HTTP GET রিকোয়েস্ট মেনে নেওয়ার জন্য ব্যবহৃত হয়।
  • Model: ভিউতে ডেটা পাঠানোর জন্য ব্যবহৃত হয়।
  • return "home": ভিউ নাম উল্লেখ করে, যা JSP বা Thymeleaf টেমপ্লেট হতে পারে।

2. XML Configuration

Spring MVC এর পূর্ববর্তী সংস্করণে XML কনফিগারেশন ব্যবহৃত হত। এটি কিছু সময়ের জন্য পুরোনো হলেও এখনও কিছু অ্যাপ্লিকেশনে ব্যবহৃত হয়।

dispatcher-servlet.xml:

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

Spring MVC with JSP Example

এখানে একটি সাধারণ Spring MVC উদাহরণ দেওয়া হলো যেখানে JSP ভিউ টেকনোলজি ব্যবহার করা হচ্ছে:

Controller:

@Controller
public class HelloController {

    @RequestMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("message", "Hello, Spring MVC!");
        return "hello"; // returns the view (hello.jsp)
    }
}

View (hello.jsp):

<!DOCTYPE html>
<html>
<head>
    <title>Spring MVC Example</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>

Spring MVC with REST (RESTful Web Services)

Spring MVC RESTful Web Services তৈরি করতে সাহায্য করে, যেখানে @RestController এবং @RequestMapping অ্যানোটেশন ব্যবহার করা হয়।

REST Controller Example:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

    @GetMapping("/greet")
    public String greet() {
        return "Hello, this is a REST API!";
    }
}
  • @RestController: এটি @Controller এবং @ResponseBody এর কম্বিনেশন, যা রেস্ট API রেসপন্সকে সরাসরি JSON বা XML হিসেবে পাঠায়।

Benefits of Using Spring MVC

  1. Separation of Concerns: MVC ডিজাইন প্যাটার্নের মাধ্যমে, মডেল, ভিউ এবং কন্ট্রোলার আলাদা থাকে, যা কোড পরিচালনা সহজ করে।
  2. Extensible and Scalable: Spring MVC খুবই নমনীয় এবং স্কেলেবল। আপনি সহজেই নতুন ফিচার বা কাস্টমাইজেশন যোগ করতে পারেন।
  3. Testability: Spring MVC কোড টেস্ট করা সহজ। কন্ট্রোলারগুলির জন্য ইউনিট টেস্ট এবং ইন্টিগ্রেশন টেস্ট করা সম্ভব।
  4. Built-in Support for Validation: Spring MVC হ্যান্ডলারের জন্য ভ্যালিডেশন এবং ব্যান্ডলিং সমর্থন প্রদান করে, যা ইউজার ইনপুট যাচাই করার জন্য সুবিধাজনক।
  5. View Resolution: Spring MVC বিভিন্ন ভিউ প্রযুক্তি (JSP, Thymeleaf, FreeMarker, etc.) সাপোর্ট করে।

Conclusion

Spring MVC একটি অত্যন্ত শক্তিশালী এবং নমনীয় ফ্রেমওয়ার্ক যা ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য আদর্শ। এটি Model-View-Controller ডিজাইন প্যাটার্ন অনুসরণ করে, যেটি ডেটা, লজিক, এবং ইউজার ইন্টারফেসের মধ্যে পরিষ্কার বিভাজন তৈরি করে। Spring MVC বিভিন্ন ভিউ টেকনোলজি এবং RESTful API সাপোর্টের মাধ্যমে ওয়েব ডেভেলপমেন্টের জন্য একটি জনপ্রিয় ফ্রেমওয়ার্ক হয়ে উঠেছে।

Content added By
Promotion

Are you sure to start over?

Loading...