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>
ব্যাখ্যা:
spring-boot-starter-web: এটি Spring MVC এবং ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য গুরুত্বপূর্ণ ডিপেনডেন্সি। এর মধ্যে Tomcat (বা অন্যান্য এমবেডেড সার্ভার) এবং Spring MVC অন্তর্ভুক্ত থাকে।spring-boot-starter-thymeleaf: যদি আপনি Thymeleaf টেমপ্লেট ইঞ্জিন ব্যবহার করতে চান, তাহলে এই ডিপেনডেন্সি যোগ করতে হবে। এটি Spring MVC ভিউ তৈরি করতে ব্যবহৃত হয়।spring-boot-starter-data-jpa: যদি আপনি ডেটাবেসের সাথে কাজ করতে চান, তবে Spring Data JPA যোগ করা দরকার।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'
}
ব্যাখ্যা:
spring-boot-starter-web: Spring MVC অ্যাপ্লিকেশন তৈরি করতে এটি মূল ডিপেনডেন্সি।spring-boot-starter-thymeleaf: এই ডিপেনডেন্সি ব্যবহার করলে আপনি Thymeleaf টেমপ্লেট ইঞ্জিন ব্যবহার করতে পারবেন।spring-boot-starter-data-jpa: ডেটাবেসে ডেটা সংরক্ষণ করার জন্য Spring Data JPA ডিপেনডেন্সি।spring-boot-starter-security: যদি নিরাপত্তা ফিচার প্রয়োজন হয়, তাহলে Spring Security ডিপেনডেন্সি যোগ করুন।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 রিকোয়েস্ট হ্যান্ডলিং, ডেটা ভ্যালিডেশন, ইউজার ইন্টারফেস রেন্ডারিং ইত্যাদি।
Read more