Spring MVC Environment সেটআপ

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

317

Spring MVC একটি জনপ্রিয় ওয়েব ফ্রেমওয়ার্ক যা Spring Framework এর অংশ হিসেবে কাজ করে। এটি মডেল-ভিউ-কন্ট্রোলার (MVC) ডিজাইন প্যাটার্ন অনুসরণ করে এবং এটি ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি শক্তিশালী এবং নমনীয় পরিবেশ প্রদান করে।

Spring MVC সেটআপ করার জন্য, আপনি Spring Boot ব্যবহার করতে পারেন, যা কনফিগারেশন সহজ করে এবং দ্রুত প্রোটোটাইপ তৈরি করতে সাহায্য করে। তবে, আপনি যদি স্প্রিং বুট ছাড়া ক্লাসিক্যাল Spring MVC প্রোজেক্ট তৈরি করতে চান, তবে আপনাকে কিছু অতিরিক্ত কনফিগারেশন করতে হবে।

এই গাইডে, আমরা Spring MVC সেটআপ করার জন্য দুটি পদ্ধতি আলোচনা করব:

  1. Spring Boot ব্যবহার করে।
  2. Spring Framework (non-Spring Boot) ব্যবহার করে।

1. Spring MVC Environment Setup with Spring Boot

Spring Boot Spring MVC অ্যাপ্লিকেশন সেটআপ করতে সবচেয়ে সহজ এবং জনপ্রিয় পদ্ধতি। এটি আপনাকে দ্রুত কনফিগারেশন এবং প্রোজেক্টের সেটআপ সম্পন্ন করতে সাহায্য করে।

ধাপ 1: Spring Boot স্টার্টার প্রোজেক্ট তৈরি করা

Spring Boot প্রোজেক্ট তৈরি করার জন্য, আপনি Spring Initializr ব্যবহার করতে পারেন।

  1. Project: Maven Project (বা Gradle Project)
  2. Language: Java
  3. Spring Boot: সেরা ভার্সন সিলেক্ট করুন।
  4. Dependencies:
    • Spring Web (এই ডিপেন্ডেন্সি Spring MVC এর জন্য প্রয়োজন)
    • Thymeleaf (ঐচ্ছিক, যদি আপনি Thymeleaf টেমপ্লেট ব্যবহার করতে চান)
    • Spring Boot DevTools (ঐচ্ছিক, ডেভেলপমেন্টে সহায়ক)
    • Spring Security (ঐচ্ছিক, যদি নিরাপত্তা প্রয়োজন)

এটি ডাউনলোড এবং এক্সট্রাক্ট করুন।

ধাপ 2: application.properties বা application.yml কনফিগার করা

Spring Boot এর মাধ্যমে Spring MVC সেটআপ করার জন্য সাধারণত কোনো জটিল কনফিগারেশন প্রয়োজন হয় না। আপনি application.properties বা application.yml ফাইল ব্যবহার করে আপনার অ্যাপ্লিকেশন কনফিগার করতে পারেন।

# application.properties উদাহরণ
server.port=8080
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

এখানে:

  • server.port: সার্ভারের পোর্ট নম্বর নির্ধারণ করে।
  • spring.mvc.view.prefix এবং spring.mvc.view.suffix: ভিউ রেন্ডারিং কনফিগারেশন। যদি JSP ব্যবহার করা হয় তবে এটি /WEB-INF/views/ ডিরেক্টরি এবং .jsp এক্সটেনশন চিহ্নিত করে।

ধাপ 3: Controller তৈরি করা

Spring MVC কন্ট্রোলার তৈরি করার জন্য @Controller অ্যানোটেশন ব্যবহার করা হয়।

package com.example.demo.controller;

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 with Spring Boot!");
        return "home"; // home.jsp বা home.html নামে ভিউ রেন্ডার হবে
    }
}

ধাপ 4: View তৈরি করা

Spring Boot এর সাথে ভিউ তৈরি করতে আপনি JSP, Thymeleaf, বা Freemarker ব্যবহার করতে পারেন। নিচে JSP ভিউ উদাহরণ দেওয়া হলো।

<!-- /WEB-INF/views/home.jsp -->
<html>
<head>
    <title>Spring MVC Example</title>
</head>
<body>
    <h1>${message}</h1> <!-- Model থেকে পাঠানো ডেটা -->
</body>
</html>

ধাপ 5: Spring Boot অ্যাপ্লিকেশন রান করা

Spring Boot অ্যাপ্লিকেশন রান করার জন্য @SpringBootApplication অ্যানোটেশন ব্যবহার করে প্রধান অ্যাপ্লিকেশন ক্লাস তৈরি করুন:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

এখন আপনি DemoApplication.java ক্লাস চালিয়ে Spring Boot অ্যাপ্লিকেশন রান করতে পারেন। আপনি আপনার ব্রাউজারে গিয়ে http://localhost:8080/home URL দেখলে, আপনি আপনার home.jsp পেজটি দেখতে পাবেন।


2. Spring MVC Environment Setup Without Spring Boot (Traditional Spring)

Spring Boot ছাড়া Spring MVC অ্যাপ্লিকেশন তৈরি করতে, আপনাকে কিছু অতিরিক্ত কনফিগারেশন করতে হবে, যেমন DispatcherServlet, web.xml, এবং অন্যান্য কনফিগারেশন।

ধাপ 1: Maven Dependencies যোগ করা

Spring MVC প্রকল্পে প্রয়োজনীয় ডিপেন্ডেন্সি যোগ করুন। আপনার pom.xml ফাইলে এই ডিপেন্ডেন্সিগুলি যোগ করুন:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.10</version> <!-- Spring MVC এর ভার্সন -->
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

ধাপ 2: web.xml কনফিগারেশন

Spring MVC কনফিগার করতে web.xml ফাইলের মধ্যে DispatcherServlet এবং অন্যান্য কনফিগারেশন সেটআপ করতে হবে।

<?xml version="1.0" encoding="UTF-8"?>
<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">
    
    <!-- DispatcherServlet সেটআপ -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!-- Spring MVC কনফিগারেশন -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-servlet.xml</param-value>
    </context-param>
    
</web-app>

ধাপ 3: Spring DispatcherServlet কনফিগারেশন (spring-servlet.xml)

<?xml version="1.0" encoding="UTF-8"?>
<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.xsd
           http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- Enable Spring MVC annotations -->
    <mvc:annotation-driven />

    <!-- Component scanning for controllers -->
    <context:component-scan base-package="com.example.controller" />

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

</beans>

ধাপ 4: Controller এবং View তৈরি করা

এটি Spring Boot সংস্করণের মতোই, আপনি @Controller ব্যবহার করে কন্ট্রোলার তৈরি করবেন এবং JSP ফাইল ব্যবহার করে ভিউ তৈরি করবেন।


উপসংহার

Spring MVC অ্যাপ্লিকেশন তৈরি করতে Spring Boot ব্যবহার করা সবচেয়ে সহজ এবং দ্রুততম পদ্ধতি, তবে আপনি চাইলে Traditional Spring MVC পরিবেশও সেটআপ করতে পারেন। Spring Boot ব্যবহার করলে কনফিগারেশন অনেক সহজ হয়ে যায়, যেখানে DispatcherServlet, Controller, এবং ViewResolver সহ বেশ কিছু কনফিগারেশন অটোমেটিকভাবে সেটআপ হয়ে থাকে। Spring MVC খুবই শক্তিশালী এবং নমনীয়, যা আপনাকে ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে সর্বোচ্চ কাস্টমাইজেশন প্রদান করে।

Content added By

Spring MVC প্রজেক্ট তৈরি করতে আপনি Maven বা Gradle ব্যবহার করতে পারেন। এখানে আমরা Maven এবং Gradle উভয়ের জন্য Spring MVC প্রজেক্ট কনফিগারেশন দেখাবো।


১. Maven দিয়ে Spring MVC প্রজেক্ট তৈরি করা

ধাপ ১: Maven ডিপেনডেন্সি যোগ করা

Maven ব্যবহারের জন্য প্রথমে pom.xml ফাইলে Spring Web MVC এবং অন্যান্য প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে হবে।

<dependencies>
    <!-- Spring Web MVC Dependency -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Thymeleaf (Optional, for view rendering) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    <!-- Spring Boot Starter Test (For Testing the Application) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
  • spring-boot-starter-web: Spring MVC এবং অন্যান্য ওয়েব টেকনোলজি ব্যবহারের জন্য।
  • spring-boot-starter-thymeleaf: Thymeleaf ভিউ টেমপ্লেট ইঞ্জিন ব্যবহার করার জন্য।
  • spring-boot-starter-test: টেস্টিং এর জন্য।

ধাপ ২: Spring Boot Main Application Class তৈরি করা

Maven দিয়ে Spring MVC প্রজেক্ট তৈরি করার জন্য প্রথমে @SpringBootApplication অ্যানোটেশন সহ একটি মূল ক্লাস তৈরি করুন।

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringMvcApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringMvcApplication.class, args);
    }
}

এটি Spring Boot অ্যাপ্লিকেশন চালু করার জন্য প্রয়োজনীয় কনফিগারেশন সন্নিবেশ করবে।

ধাপ ৩: Controller তৈরি করা

Spring MVC কন্ট্রোলার তৈরি করতে @Controller অ্যানোটেশন ব্যবহার করুন। উদাহরণস্বরূপ, একটি HomeController তৈরি করুন।

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 with Maven!");
        return "home"; // Returning the view name
    }
}

ধাপ ৪: View (Thymeleaf) তৈরি করা

home.html নামের ভিউ টেমপ্লেট তৈরি করুন, যা src/main/resources/templates/ ফোল্ডারে থাকবে।

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Spring MVC Example</title>
</head>
<body>
    <h1 th:text="${message}"></h1>  <!-- Display message from controller -->
</body>
</html>

ধাপ ৫: প্রজেক্ট রান করা

Maven এর মাধ্যমে Spring Boot অ্যাপ্লিকেশন রান করতে নিচের কমান্ড ব্যবহার করুন:

mvn spring-boot:run

এটি আপনার অ্যাপ্লিকেশনটি চালু করবে এবং আপনি ব্রাউজারে http://localhost:8080/home গিয়ে দেখবেন "Welcome to Spring MVC with Maven!" বার্তা।


২. Gradle দিয়ে Spring MVC প্রজেক্ট তৈরি করা

ধাপ ১: Gradle কনফিগারেশন

Gradle ব্যবহার করার জন্য build.gradle ফাইলে প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে হবে। নিচে একটি উদাহরণ দেওয়া হল:

plugins {
    id 'org.springframework.boot' version '2.7.0'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

ধাপ ২: Spring Boot Main Application Class তৈরি করা

SpringMvcApplication.java ক্লাসটি তৈরি করুন যা Spring Boot অ্যাপ্লিকেশন চালু করবে:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringMvcApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringMvcApplication.class, args);
    }
}

ধাপ ৩: Controller তৈরি করা

এটি ঠিক যেমন Maven প্রকল্পে ছিল, একটি কন্ট্রোলার তৈরি করুন যা /home রিকোয়েস্টের জন্য ডেটা প্রেরণ করবে।

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 with Gradle!");
        return "home"; // Returning the view name
    }
}

ধাপ ৪: View (Thymeleaf) তৈরি করা

home.html ফাইল তৈরি করুন যা src/main/resources/templates/ ফোল্ডারে থাকবে।

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Spring MVC Example</title>
</head>
<body>
    <h1 th:text="${message}"></h1>  <!-- Display message from controller -->
</body>
</html>

ধাপ ৫: প্রজেক্ট রান করা

Gradle ব্যবহার করে Spring Boot অ্যাপ্লিকেশন চালু করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

gradle bootRun

এটি আপনার অ্যাপ্লিকেশনটি চালু করবে এবং আপনি ব্রাউজারে http://localhost:8080/home গিয়ে দেখবেন "Welcome to Spring MVC with Gradle!" বার্তা।


উপসংহার

এটি একটি সাধারণ প্রক্রিয়া যা Maven এবং Gradle ব্যবহারের মাধ্যমে Spring MVC অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। Maven এবং Gradle উভয়ই Spring Boot সহ Spring MVC অ্যাপ্লিকেশন তৈরি করার জন্য খুবই শক্তিশালী টুল। আপনি Maven বা Gradle যেকোনোটি ব্যবহার করতে পারেন, কিন্তু এটি আপনার পছন্দের উপর নির্ভর করবে।

Content added By

Spring MVC অ্যাপ্লিকেশন তৈরি করতে Spring Boot ব্যবহার করা অনেক সুবিধাজনক, কারণ Spring Boot স্বয়ংক্রিয়ভাবে Spring MVC-এর জন্য প্রয়োজনীয় ডিপেনডেন্সি এবং কনফিগারেশন প্রদান করে। তবে আপনি যদি একটি স্ট্যান্ডার্ড Spring MVC অ্যাপ্লিকেশন তৈরি করতে চান, তাহলে কিছু নির্দিষ্ট ডিপেনডেন্সি pom.xml (Maven) বা build.gradle (Gradle) ফাইলে যুক্ত করতে হবে।

নিচে Spring MVC প্রজেক্টে প্রয়োজনীয় ডিপেনডেন্সি যোগ করার উদাহরণ দেওয়া হলো:


Maven এর মাধ্যমে Spring MVC এর ডিপেনডেন্সি

1. spring-boot-starter-web

Spring MVC অ্যাপ্লিকেশন তৈরি করতে spring-boot-starter-web ডিপেনডেন্সি ব্যবহার করা হয়, যা Spring MVC, Jackson, Tomcat, এবং অন্যান্য প্রয়োজনীয় ডিপেনডেন্সি অন্তর্ভুক্ত করে।

<dependencies>
    <!-- Spring Boot Starter Web: Required for Spring MVC -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Thymeleaf (optional, for templating view pages) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    <!-- Spring Boot Starter for JPA (if you want to work with a database) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!-- Spring Boot Starter Security (if you want to add security features) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <!-- Spring Boot Starter Test: For unit tests (optional) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

ব্যাখ্যা:

  1. spring-boot-starter-web: এটি Spring MVC এবং ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য গুরুত্বপূর্ণ ডিপেনডেন্সি। এর মধ্যে Tomcat (বা অন্যান্য এমবেডেড সার্ভার) এবং Spring MVC অন্তর্ভুক্ত থাকে।
  2. spring-boot-starter-thymeleaf: যদি আপনি Thymeleaf টেমপ্লেট ইঞ্জিন ব্যবহার করতে চান, তাহলে এই ডিপেনডেন্সি যোগ করতে হবে। এটি Spring MVC ভিউ তৈরি করতে ব্যবহৃত হয়।
  3. spring-boot-starter-data-jpa: যদি আপনি ডেটাবেসের সাথে কাজ করতে চান, তবে Spring Data JPA যোগ করা দরকার।
  4. spring-boot-starter-security: আপনি যদি অ্যাপ্লিকেশনে নিরাপত্তা যোগ করতে চান, তাহলে Spring Security ডিপেনডেন্সি যুক্ত করতে পারেন।

Gradle এর মাধ্যমে Spring MVC এর ডিপেনডেন্সি

যদি আপনি Gradle ব্যবহার করেন, তবে নিম্নলিখিত ডিপেনডেন্সিগুলি আপনার build.gradle ফাইলে যুক্ত করতে হবে:

dependencies {
    // Spring Boot Starter Web: Required for Spring MVC
    implementation 'org.springframework.boot:spring-boot-starter-web'

    // Thymeleaf for templating (optional)
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

    // Spring Boot Starter for JPA (optional, if you're using a database)
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

    // Spring Boot Starter Security (optional, for security)
    implementation 'org.springframework.boot:spring-boot-starter-security'

    // Spring Boot Starter Test (optional, for testing)
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

ব্যাখ্যা:

  1. spring-boot-starter-web: Spring MVC অ্যাপ্লিকেশন তৈরি করতে এটি মূল ডিপেনডেন্সি।
  2. spring-boot-starter-thymeleaf: এই ডিপেনডেন্সি ব্যবহার করলে আপনি Thymeleaf টেমপ্লেট ইঞ্জিন ব্যবহার করতে পারবেন।
  3. spring-boot-starter-data-jpa: ডেটাবেসে ডেটা সংরক্ষণ করার জন্য Spring Data JPA ডিপেনডেন্সি।
  4. spring-boot-starter-security: যদি নিরাপত্তা ফিচার প্রয়োজন হয়, তাহলে Spring Security ডিপেনডেন্সি যোগ করুন।
  5. spring-boot-starter-test: ইউনিট টেস্টিং এবং ইন্টিগ্রেশন টেস্টিংয়ের জন্য।

Spring MVC অ্যাপ্লিকেশন স্ট্রাকচার

Spring MVC অ্যাপ্লিকেশনে সাধারণত Controller, Model, এবং View একসাথে কাজ করে। এর মধ্যে Controller HTTP রিকোয়েস্ট পরিচালনা করে, Model ডেটা প্রক্রিয়া করে, এবং View ইউজারের কাছে ডেটা উপস্থাপন করে।

একটি সাধারণ Spring MVC অ্যাপ্লিকেশন স্ট্রাকচার দেখুন:

src/
 ├── main/
 │    ├── java/
 │    │    └── com/
 │    │         └── example/
 │    │              ├── controller/
 │    │              │    └── HelloController.java  # Controller
 │    │              └── model/
 │    │                   └── User.java             # Model
 │    ├── resources/
 │    │    ├── static/
 │    │    │    └── images/
 │    │    ├── templates/
 │    │    │    └── hello.html        # View (Thymeleaf Template)
 │    │    └── application.properties
 └── test/
      └── java/
           └── com/
                └── example/
                     └── HelloControllerTest.java  # Tests

Spring MVC কনফিগারেশন

Spring Boot ব্যবহার করলে Spring MVC স্বয়ংক্রিয়ভাবে কনফিগার হয়, তবে আপনি যদি কাস্টম কনফিগারেশন করতে চান, তবে Spring MVC কনফিগারেশন ফাইল ব্যবহার করা যায়। উদাহরণ:

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

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
    // Custom MVC configuration goes here
}

এখানে @EnableWebMvc অ্যানোটেশন Spring MVC কনফিগারেশন সক্রিয় করে এবং WebMvcConfigurer ইন্টারফেস ব্যবহার করে আপনি কাস্টম কনফিগারেশন করতে পারেন, যেমন ViewResolvers, MessageConverters, Interceptor ইত্যাদি।


উপসংহার

Spring MVC অ্যাপ্লিকেশন তৈরি করতে Maven বা Gradle এর মাধ্যমে প্রয়োজনীয় ডিপেনডেন্সি যোগ করা খুবই সহজ। Spring Boot ব্যবহার করলে, ডিপেনডেন্সি ও কনফিগারেশন কাজগুলো স্বয়ংক্রিয়ভাবে হয়ে যায়। Spring MVC আপনাকে একটি শক্তিশালী এবং নমনীয় ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য প্রয়োজনীয় সকল উপাদান প্রদান করে, যেমন HTTP রিকোয়েস্ট হ্যান্ডলিং, ডেটা ভ্যালিডেশন, ইউজার ইন্টারফেস রেন্ডারিং ইত্যাদি।

Content added By

Spring MVC প্রজেক্ট কনফিগার করা Eclipse বা IntelliJ IDEA-তে বেশ সহজ। নিচে আমি দুটি IDE (Eclipse এবং IntelliJ IDEA) তে Spring MVC প্রজেক্ট কনফিগারেশন করার ধাপগুলো ব্যাখ্যা করছি।

Eclipse তে Spring MVC প্রজেক্ট কনফিগারেশন:

Eclipse ব্যবহার করে Spring MVC প্রজেক্ট তৈরি করার জন্য সাধারণত Spring Tool Suite (STS) ব্যবহার করা হয়, যা Eclipse এর একটি কাস্টমাইজড ভার্সন। তবে আপনি সাধারণ Eclipse IDE তেও Spring MVC প্রজেক্ট কনফিগার করতে পারেন।

Step 1: Eclipse Setup

  1. Eclipse Download: প্রথমে Eclipse IDE for Java Developers ডাউনলোড এবং ইনস্টল করুন।
  2. Spring Tool Suite (STS) Install (ঐচ্ছিক):
    • আপনি Eclipse Marketplace থেকে Spring Tools (STS) প্লাগিন ইনস্টল করতে পারেন।
    • HelpEclipse MarketplaceSearch for "Spring Tools"Install

Step 2: New Spring MVC Project Create করা

  1. Create a new project:
    • FileNewDynamic Web Project
    • প্রজেক্ট নাম দিন (যেমন: SpringMvcExample) এবং JDK সিলেক্ট করুন।
    • Dynamic Web Module version: 3.1 (যদি সম্ভব হয়) সিলেক্ট করুন।
  2. Add Spring Framework:
    • Right-click on your project → PropertiesProject FacetsDynamic Web Module, Java, and Spring ফ্যাসেট যোগ করুন।

Step 3: Add Spring Dependencies (Maven Dependency ব্যবহার করুন)

Spring MVC কে কনফিগার করার জন্য আপনাকে spring-webmvc ডিপেন্ডেন্সি যোগ করতে হবে।

  1. pom.xml ফাইল তৈরি করুন এবং নিচের ডিপেন্ডেন্সি যোগ করুন:
<dependencies>
    <!-- Spring Web MVC dependency -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.9</version> <!-- or latest version -->
    </dependency>

    <!-- Spring Core and Context -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.9</version> <!-- or latest version -->
    </dependency>

    <!-- SLF4J for logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.32</version> <!-- or latest version -->
    </dependency>
</dependencies>

Step 4: Create DispatcherServlet Configuration

Spring MVC এর জন্য web.xml কনফিগারেশন করতে হবে।

  1. web.xml ফাইলটি WEB-INF ফোল্ডারে তৈরি করুন এবং নিচের কনফিগারেশন যোগ করুন:
<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">

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

Step 5: Create Spring MVC Configuration Class

Spring MVC কনফিগারেশনের জন্য DispatcherServlet কে সাহায্য করার জন্য একটি কনফিগারেশন ক্লাস তৈরি করুন।

package com.example.config;

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;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public InternalResourceViewResolver resolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}

Step 6: Create Controller

এখন একটি কন্ট্রোলার তৈরি করুন যা একটি সিম্পল "Hello, World" পেজ রিটার্ন করবে।

package com.example.controller;

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

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "hello";  // Refers to the hello.jsp view
    }
}

Step 7: Create View (JSP Page)

WEB-INF/views/hello.jsp পৃষ্ঠাটি তৈরি করুন যেখানে আপনি "Hello, World!" দেখাতে পারবেন।

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>Hello, Spring MVC!</title>
</head>
<body>
    <h1>Hello, Spring MVC!</h1>
</body>
</html>

Step 8: Run the Project

  • Run the Project on a server like Apache Tomcat.
  • Access the application at: http://localhost:8080/yourProjectName/hello

IntelliJ IDEA তে Spring MVC প্রজেক্ট কনফিগারেশন:

Step 1: IntelliJ IDEA Setup

  1. Install IntelliJ IDEA: Download IntelliJ IDEA.
  2. Spring Initializr: IntelliJ IDEA-তে Spring প্রজেক্ট তৈরি করার জন্য Spring Initializr ব্যবহার করা যেতে পারে।

Step 2: Create New Spring MVC Project

  1. Open IntelliJ IDEACreate New ProjectSpring Initializr
  2. Select Spring BootDependencies: Spring Web, Thymeleaf, Spring Boot DevTools (যদি দরকার হয়)।
  3. Add Dependencies: Spring Web, Spring Boot Starter Thymeleaf, Spring Boot Starter Web
  4. Choose Project SDK (JDK 8 বা সর্বশেষ সংস্করণ) → Finish

Step 3: Spring MVC Configuration in IntelliJ IDEA

IntelliJ IDEA-তে Spring MVC কনফিগারেশন সাধারণত Spring Boot এর মাধ্যমে স্বয়ংক্রিয়ভাবে করা হয়। তবে, আপনি যদি Spring MVC কনফিগারেশন কাস্টমাইজ করতে চান, তাহলে:

  • Create @Controller Class: তৈরি করুন কন্ট্রোলার ক্লাস যা HTTP রিকোয়েস্ট হ্যান্ডেল করবে।
  • Add application.properties for configurations: আপনার Spring MVC কনফিগারেশনগুলি ঠিকভাবে পরিচালনা করার জন্য application.properties বা application.yml ফাইল ব্যবহার করুন।

Conclusion

Eclipse এবং IntelliJ IDEA উভয় IDE-তেই Spring MVC প্রজেক্ট তৈরি ও কনফিগার করা সম্ভব। আপনি যদি Spring Boot ব্যবহার করেন তবে কনফিগারেশন আরো সহজ হবে, কারণ Spring Boot এর মধ্যে অনেক ডিফল্ট কনফিগারেশন রয়েছে যা স্বয়ংক্রিয়ভাবে আপনার জন্য কাজ করবে। Spring Tool Suite (STS) Eclipse ব্যবহারকারীদের জন্য একটি বিশেষ Eclipse প্লাগিন যা Spring MVC প্রজেক্ট কনফিগারেশন আরো সহজ করে তোলে।

Content added By

এখানে একটি সিম্পল Spring MVC অ্যাপ্লিকেশন তৈরি করার ধাপ তুলে ধরা হলো। এই উদাহরণে, আমরা একটি "Hello World" পেজ তৈরি করব, যেখানে Spring MVC কন্ট্রোলার একটি রিকোয়েস্ট গ্রহণ করবে এবং সেটি একটি ভিউ রেন্ডার করবে।


Step 1: Maven Dependencies

Spring MVC অ্যাপ্লিকেশন শুরু করতে প্রথমে Maven ডিপেনডেন্সি যোগ করুন। আমরা Spring Boot ব্যবহার করতে পারি যাতে কনফিগারেশন সহজ হয়।

pom.xml ফাইল:

<dependencies>
    <!-- Spring Boot Starter Web (Includes Spring MVC and Tomcat) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Thymeleaf for View Template -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    <!-- Spring Boot Starter Test (for testing purposes) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
</dependencies>
  • spring-boot-starter-web: Spring MVC ও Tomcat সহ ওয়েব অ্যাপ্লিকেশন ডেভেলপ করতে প্রয়োজনীয় ডিপেনডেন্সি।
  • spring-boot-starter-thymeleaf: HTML রেন্ডারিং এর জন্য Thymeleaf টেমপ্লেট ইঞ্জিন।
  • spring-boot-starter-test: টেস্টিং এর জন্য ডিপেনডেন্সি (যদি আপনি টেস্ট করতে চান)।

Step 2: Spring Boot Application Class

Spring Boot অ্যাপ্লিকেশন ক্লাসে @SpringBootApplication অ্যানোটেশন ব্যবহার করে অ্যাপ্লিকেশন চালু করুন।

HelloWorldApplication.java:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloWorldApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloWorldApplication.class, args);
    }
}
  • @SpringBootApplication: Spring Boot অ্যাপ্লিকেশন চালু করার জন্য প্রধান অ্যানোটেশন। এটি @EnableAutoConfiguration, @ComponentScan, এবং @Configuration অ্যানোটেশনগুলি একসাথে ব্যবহার করে।

Step 3: Controller Class

Spring MVC কন্ট্রোলার ক্লাস তৈরি করুন যেখানে রিকোয়েস্ট ম্যাপিং করা হবে।

HomeController.java:

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

@Controller
public class HomeController {

    @GetMapping("/hello")
    public String helloWorld(Model model) {
        model.addAttribute("message", "Hello, World!"); // Add attribute to model
        return "hello"; // Return view name (hello.html)
    }
}
  • @Controller: এটি একটি Spring MVC কন্ট্রোলার ক্লাস।
  • @GetMapping("/hello"): /hello URL প্যাটার্নে GET রিকোয়েস্ট ম্যানেজ করে।
  • Model model: ডাটা ভিউতে পাঠানোর জন্য ব্যবহৃত হয়। আমরা model.addAttribute() এর মাধ্যমে ডাটা ভিউতে পাঠাচ্ছি।
  • return "hello": এটি বলে যে, hello.html নামক ভিউ টেমপ্লেট রেন্ডার করা হবে।

Step 4: View (Thymeleaf Template)

Spring MVC থাইমলিফের মাধ্যমে HTML টেমপ্লেট রেন্ডার করে। src/main/resources/templates ফোল্ডারে hello.html তৈরি করুন।

hello.html (Thymeleaf Template):

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello World</title>
</head>
<body>
    <h1 th:text="${message}"></h1> <!-- Display the message -->
</body>
</html>
  • ${message}: এটি Spring MVC এর মডেল থেকে পাস করা ডাটা হবে (অর্থাৎ Hello, World!), যা ভিউতে রেন্ডার হবে।

Step 5: Run the Application

  1. Spring Boot অ্যাপ্লিকেশন চালু করুন:
    • Maven ব্যবহার করে অ্যাপ্লিকেশনটি রান করতে, mvn spring-boot:run কমান্ড ব্যবহার করতে পারেন অথবা IDE (IntelliJ IDEA, Eclipse) থেকে HelloWorldApplication.java ক্লাস চালাতে পারেন।
  2. ব্রাউজারে অ্যাপ্লিকেশনটি দেখুন:
    • ব্রাউজারে http://localhost:8080/hello এ নেভিগেট করুন।
    • আপনি একটি পেজ দেখতে পাবেন যেখানে "Hello, World!" বার্তা দেখাবে।

Step 6: Static Resources (Optional)

Spring MVC স্ট্যাটিক রিসোর্স যেমন CSS, JavaScript ফাইল এবং ইমেজ ফাইলকে src/main/resources/static ডিরেক্টরিতে রাখবে। উদাহরণস্বরূপ:

src/main/resources/static/css/style.css
src/main/resources/static/js/script.js

এটি Spring MVC দ্বারা সরাসরি অ্যাক্সেস করা যাবে, যেমন http://localhost:8080/css/style.css


Step 7: Customizing Error Pages (Optional)

Spring Boot অ্যাপ্লিকেশনগুলিতে কাস্টম Error Pages নির্ধারণ করা সম্ভব। যেমন, 404 বা 500 এর জন্য কাস্টম পেজ দেখানো।

error.html:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Error</title>
</head>
<body>
    <h1>Something went wrong!</h1>
</body>
</html>

এখন, আপনার অ্যাপ্লিকেশনটি 404 বা অন্য কোনো ত্রুটি পেলে এই কাস্টম পেজটি দেখাবে।


উপসংহার:

এই "Hello World" উদাহরণটি Spring MVC এর মূল ধারণাগুলো যেমন কন্ট্রোলার, ভিউ রেন্ডারিং, মডেল ব্যবহারের সাথে পরিচয় করিয়ে দেয়। Spring Boot এর সাহায্যে Spring MVC অ্যাপ্লিকেশন তৈরি করা অনেক সহজ এবং কম কনফিগারেশন প্রয়োজন। এই উদাহরণের মাধ্যমে আপনি Spring MVC অ্যাপ্লিকেশন তৈরি করতে শিখেছেন এবং এটি আপনার উন্নত ওয়েব অ্যাপ্লিকেশন তৈরির জন্য একটি ভিত্তি হতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...