web.xml বা Spring Boot এর মাধ্যমে DispatcherServlet কনফিগার করা

DispatcherServlet এর ভূমিকা - স্প্রিং এমভিসি (Spring MVC) - Java Technologies

285

Spring MVC অ্যাপ্লিকেশন তৈরি করার সময়, DispatcherServlet হল একটি কেন্দ্রীয় উপাদান যা সব incoming HTTP রিকোয়েস্ট প্রসেস করে এবং সঠিক Controller অথবা View Resolver এর মাধ্যমে response তৈরি করে। Spring Boot এর মাধ্যমে Spring MVC অ্যাপ্লিকেশন কনফিগার করার সময়, DispatcherServlet স্বয়ংক্রিয়ভাবে কনফিগার হয়ে যায়, তবে আপনি যদি web.xml ফাইলের মাধ্যমে বা Spring Boot Configuration এ কাস্টম কনফিগারেশন করতে চান, তবে কিছু অতিরিক্ত কনফিগারেশন করতে হবে।

1. web.xml এর মাধ্যমে DispatcherServlet কনফিগারেশন

Spring MVC অ্যাপ্লিকেশনে web.xml ফাইলটি স্ট্যান্ডার্ড ওয়েব অ্যাপ্লিকেশন কনফিগারেশন ফাইল ছিল, যা DispatcherServlet এবং অন্যান্য সেটআপ কনফিগার করার জন্য ব্যবহৃত হত। এখানে, DispatcherServlet কনফিগার করতে হবে এবং Spring MVC এর জন্য প্রয়োজনীয় কনফিগারেশন সেট করতে হবে।

Step-by-Step Example (web.xml Configuration)

web.xml কনফিগারেশন:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <display-name>Spring MVC Application</display-name>

    <!-- DispatcherServlet Configuration -->
    <servlet>
        <servlet-name>spring-mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- Define the DispatcherServlet's initialization parameters -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map DispatcherServlet to handle all requests -->
    <servlet-mapping>
        <servlet-name>spring-mvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

Key Elements:

  1. <servlet>: DispatcherServlet এর জন্য এই element ব্যবহার করা হয়।
    • servlet-name: DispatcherServlet এর নাম দেওয়া হয়েছে spring-mvc
    • servlet-class: Spring MVC DispatcherServlet এর ক্লাস।
    • contextConfigLocation: Spring config ফাইলের পথ নির্ধারণ করে (এখানে /WEB-INF/spring-config.xml)।
    • load-on-startup: DispatcherServlet কে অ্যাপ্লিকেশন শুরু হওয়ার সাথে সাথে লোড করার নির্দেশ দেয়।
  2. <servlet-mapping>: DispatcherServlet এর URL প্যাটার্ন কনফিগার করে। এই ক্ষেত্রে, সব incoming রিকোয়েস্ট / URL প্যাটার্নের মাধ্যমে DispatcherServlet দ্বারা হ্যান্ডল করা হবে।
spring-config.xml (Spring Bean Configuration):
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">

    <!-- Enable component scanning -->
    <context:component-scan base-package="com.example" />

    <!-- Define view resolver (JSP example) -->
    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>
  • Component Scan: com.example প্যাকেজে থাকা Spring Beans গুলো স্ক্যান করতে ব্যবহৃত হয়।
  • View Resolver: InternalResourceViewResolver ব্যবহার করা হয়েছে, যা JSP পেজগুলিকে রেন্ডার করবে।

2. Spring Boot-এ DispatcherServlet কনফিগারেশন

Spring Boot অ্যাপ্লিকেশন ব্যবহার করে Spring MVC কনফিগার করার সময় DispatcherServlet স্বয়ংক্রিয়ভাবে কনফিগার হয়ে যায় এবং আপনাকে web.xml কনফিগারেশন করার দরকার পড়ে না। Spring Boot এর মাধ্যমে DispatcherServlet কনফিগারেশন অনেক সহজ, কারণ Spring Boot সাধারণভাবে স্বয়ংক্রিয় কনফিগারেশন ব্যবস্থা প্রদান করে।

Spring Boot কনফিগারেশন Example:

Spring Boot অ্যাপ্লিকেশনের জন্য DispatcherServlet কনফিগারেশন করার জন্য শুধুমাত্র একটি @SpringBootApplication ক্লাস এবং Spring MVC এর জন্য @Controller ব্যবহার করা প্রয়োজন। Spring Boot প্রকল্পের জন্য DispatcherServlet সেটআপটি ইতিমধ্যে অন্তর্ভুক্ত থাকে।

Spring Boot Main Application Class:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}
  • @SpringBootApplication: এটি Spring Boot অ্যাপ্লিকেশন কনফিগারেশন ক্লাস যা @Configuration, @EnableAutoConfiguration, এবং @ComponentScan অ্যানোটেশনগুলির সংমিশ্রণ।
Controller Class Example:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

    @RequestMapping("/home")
    public String home() {
        return "home"; // Returns a view name (home.jsp or home.html)
    }
}
Application Properties (Optional):
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

Spring Boot স্বয়ংক্রিয়ভাবে DispatcherServlet কনফিগার করবে, তবে আপনি ভিউ রেজোলভার বা অন্য কাস্টম কনফিগারেশন করতে চাইলে এটি application.properties অথবা application.yml ফাইলে কনফিগার করতে পারেন।


3. DispatcherServlet কনফিগারেশনে কাস্টমাইজেশন

DispatcherServlet Customization in Spring Boot

Spring Boot-এ আপনি DispatcherServlet কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ, আপনি DispatcherServlet এর initialization parameters কনফিগার করতে বা DispatcherServlet কে কাস্টম URL মেপিং এপ্লাই করতে পারেন।

import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.DispatcherServlet;

@Configuration
public class ServletConfig {

    @Bean
    public ServletRegistrationBean<DispatcherServlet> dispatcherServlet() {
        DispatcherServlet dispatcherServlet = new DispatcherServlet();
        ServletRegistrationBean<DispatcherServlet> registrationBean = 
            new ServletRegistrationBean<>(dispatcherServlet, "/mvc/*");
        registrationBean.setLoadOnStartup(1);
        return registrationBean;
    }
}
  • ServletRegistrationBean: DispatcherServlet এর কনফিগারেশন এবং URL মেপিং কাস্টমাইজ করতে এটি ব্যবহৃত হয়।
  • "/mvc/*": DispatcherServlet-এর URL মেপিং কাস্টমাইজ করা হচ্ছে।

4. Conclusion

Spring MVC অ্যাপ্লিকেশন কনফিগার করার জন্য আপনি web.xml অথবা Spring Boot ব্যবহার করতে পারেন। web.xml কনফিগারেশন মেথডে DispatcherServlet এবং অন্যান্য কনফিগারেশন সেটআপ করতে হয়, যেখানে Spring Boot স্বয়ংক্রিয়ভাবে DispatcherServlet কনফিগার করে এবং সহজে অ্যাপ্লিকেশন সেটআপ করতে সাহায্য করে। Spring Boot এর মাধ্যমে DispatcherServlet কনফিগার করা অনেক সহজ, যেখানে কম কনফিগারেশন এবং ঝামেলা থাকে।

Content added By
Promotion

Are you sure to start over?

Loading...