Spring Boot এবং Spring MVC Integration

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

Spring Boot এবং Spring MVC একসাথে ব্যবহৃত হলে একটি সিম্পল, দ্রুত এবং কনফিগারেশন-কম ওয়েব অ্যাপ্লিকেশন তৈরি করা সম্ভব হয়। Spring Boot হল Spring Framework-এর একটি এক্সটেনশন যা অ্যাপ্লিকেশন ডেভেলপমেন্ট সহজতর করে, এবং Spring MVC হল Spring Framework-এ ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত একটি গুরুত্বপূর্ণ মডিউল।

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

Spring Boot এবং Spring MVC Integration এর মূল সুবিধা:

  1. Auto Configuration: Spring Boot ডিফল্ট কনফিগারেশন প্রদান করে, ফলে Spring MVC কনফিগারেশন ম্যানুয়ালি করতে হয় না।
  2. Embedded Server: Spring Boot অ্যাপ্লিকেশনটির জন্য আপনি ওয়েব সার্ভার কনফিগার করতে হবেন না (যেমন Tomcat), এটি অটোমেটিক্যালি এমবেডেড সার্ভার চালু করে।
  3. Faster Setup: Spring Boot স্বয়ংক্রিয় কনফিগারেশন, ডিপেনডেন্সি ম্যানেজমেন্ট এবং স্টার্টার প্যাকেজের মাধ্যমে ওয়েব অ্যাপ্লিকেশন তৈরির সময় অনেক কমিয়ে দেয়।
  4. Standalone Application: Spring Boot অ্যাপ্লিকেশনটি সহজেই স্ট্যান্ডঅ্যালোন (একটি একক জার ফাইল) হিসেবে রান করা যায়।

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

Spring Boot এবং Spring MVC ইন্টিগ্রেশন শুরু করতে প্রথমে একটি Spring Boot অ্যাপ্লিকেশন তৈরি করতে হবে। Spring Boot স্টার্টার ব্যবহার করে খুব দ্রুত একটি Spring MVC অ্যাপ্লিকেশন সেটআপ করা সম্ভব।

Maven ডিপেনডেন্সি (pom.xml)

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

    <!-- Spring Boot Starter Thymeleaf (Optional) for rendering views -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

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

Gradle ডিপেনডেন্সি (build.gradle)

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

ধাপ ২: Spring Boot Main Application Class

Spring Boot অ্যাপ্লিকেশন চালু করতে একটি প্রধান ক্লাস তৈরি করতে হবে যা @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); // Running the application
    }
}

এখানে:

  • @SpringBootApplication: এটি Spring Boot অ্যাপ্লিকেশনকে চিহ্নিত করে এবং এতে অন্যান্য প্রয়োজনীয় কনফিগারেশন অন্তর্ভুক্ত থাকে (যেমন @EnableAutoConfiguration, @ComponentScan ইত্যাদি)।

ধাপ ৩: Spring MVC কন্ট্রোলার তৈরি করা

Spring Boot অ্যাপ্লিকেশন ব্যবহার করে Spring MVC কন্ট্রোলার তৈরি করা খুবই সহজ। নিচে একটি উদাহরণ দেওয়া হলো যেখানে কন্ট্রোলার একটি GET রিকোয়েস্ট গ্রহণ করে এবং HTML ভিউ রেন্ডার করে।

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

@Controller
public class HomeController {

    @GetMapping("/home")
    public String home(Model model) {
        model.addAttribute("message", "Welcome to Spring Boot and Spring MVC!");
        return "home"; // Return the view name (home.html)
    }
}

এখানে:

  • @Controller: Spring MVC কন্ট্রোলার হিসেবে ক্লাসটিকে চিহ্নিত করে।
  • @GetMapping("/home"): এই মেথডটি /home URL এর GET রিকোয়েস্ট হ্যান্ডল করবে।
  • Model: এটি ভিউতে ডেটা পাঠাতে ব্যবহৃত হয় (এখানে "message" অ্যাট্রিবিউট পাঠানো হচ্ছে)।

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

Spring MVC এবং Spring Boot-এ Thymeleaf একটি জনপ্রিয় টেমপ্লেট ইঞ্জিন। ফাইলটি src/main/resources/templates/ ফোল্ডারে রাখতে হবে।

home.html

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

এখানে:

  • th:text="${message}": Thymeleaf টেমপ্লেট ইঞ্জিনের মাধ্যমে কন্ট্রোলার থেকে আসা ডেটা ভিউতে প্রদর্শন করা হচ্ছে।

ধাপ ৫: Spring Boot অ্যাপ্লিকেশন চালানো

Spring Boot অ্যাপ্লিকেশন চালানোর জন্য নিচের কমান্ড ব্যবহার করুন:

mvn spring-boot:run

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


ধাপ ৬: Spring MVC কনফিগারেশন

Spring Boot অ্যাপ্লিকেশনে Spring MVC কনফিগারেশন সাধারণত স্বয়ংক্রিয়ভাবে হয়, তবে আপনি যদি অতিরিক্ত কাস্টম কনফিগারেশন করতে চান, তবে WebMvcConfigurer বা @EnableWebMvc অ্যানোটেশন ব্যবহার করে কনফিগারেশন করতে পারেন।

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

@Configuration
public class WebConfig implements WebMvcConfigurer {
    // You can override methods here to customize Spring MVC configuration
}

এখানে:

  • WebMvcConfigurer ইন্টারফেসটি Spring MVC কনফিগারেশন কাস্টমাইজ করতে ব্যবহৃত হয়, যেমন ইন্টারসেপ্টর, ভিউ রেজলভার ইত্যাদি কনফিগারেশন।

উপসংহার

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

Content added By

Spring Boot কি এবং Spring MVC এর সাথে এর সম্পর্ক

97
97

Spring MVC এবং Spring Boot দুটি গুরুত্বপূর্ণ উপাদান যা Spring Framework এ ব্যবহৃত হয়, তবে এগুলোর উদ্দেশ্য এবং কার্যকারিতা আলাদা।

Spring MVC কি?

Spring MVC (Model-View-Controller) হল Spring Framework এর একটি উপাদান যা web applications তৈরি করার জন্য ব্যবহৃত হয়। এটি একটি request-response মডেল ব্যবহার করে, যেখানে Controller রিকোয়েস্ট গ্রহণ করে, Model এর ডেটা প্রক্রিয়া করে এবং View ইউজারের জন্য উপস্থাপন করে।

Spring MVC এর বৈশিষ্ট্য:

  1. Model: অ্যাপ্লিকেশনের ডেটা এবং বিজনেস লজিক।
  2. View: ইউজার ইন্টারফেস বা UI, যা UI টেমপ্লেট (JSP, Thymeleaf, FreeMarker ইত্যাদি) ব্যবহার করে তৈরি হয়।
  3. Controller: ইউজারের ইনপুট প্রক্রিয়া করে এবং সঠিক Model এবং View প্রদান করে।

Spring MVC অ্যাপ্লিকেশন তৈরি করতে আপনার অনেক কনফিগারেশন করতে হয়, যেমন:

  • DispatcherServlet কনফিগারেশন
  • ViewResolver কনফিগারেশন
  • Web.xml বা Java Config কনফিগারেশন

Spring Boot কি?

Spring Boot হল Spring Framework এর একটি প্রকল্প যা Spring অ্যাপ্লিকেশন তৈরি করার প্রক্রিয়া সহজ করে দেয়। এটি আপনাকে কম কনফিগারেশন ও দ্রুত অ্যাপ্লিকেশন তৈরি করার সুবিধা প্রদান করে। Spring Boot অ্যাপ্লিকেশনগুলি সাধারণত এমবেডেড সার্ভার (যেমন Tomcat, Jetty, Undertow) নিয়ে আসে, এবং আপনি একটি standalone application তৈরি করতে পারেন যা সহজে চালানো যায়।

Spring Boot এর বৈশিষ্ট্য:

  1. Auto Configuration: Spring Boot স্বয়ংক্রিয়ভাবে প্রয়োজনীয় কনফিগারেশন প্রদান করে, যেমন Spring MVC, Spring Data JPA, Spring Security, ইত্যাদি।
  2. Embedded Server: Spring Boot অ্যাপ্লিকেশনটি অন্তর্নির্মিত সার্ভার (Tomcat, Jetty, etc.) দিয়ে রান হয়, তাই আপনাকে আলাদাভাবে সার্ভার কনফিগার করতে হয় না।
  3. Minimal Configuration: Spring Boot এর মাধ্যমে কনফিগারেশন প্রায় ন্যূনতম করা হয়, উদাহরণস্বরূপ, application.properties বা application.yml ফাইল ব্যবহার করে।

Spring Boot আপনাকে Spring MVC এর সমস্ত সুবিধা দেয়, তবে এটি সরলীকৃত কনফিগারেশন এবং দ্রুত অ্যাপ্লিকেশন ডেভেলপমেন্ট নিশ্চিত করে।

Spring MVC এবং Spring Boot এর সম্পর্ক:

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

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

Spring Boot এবং Spring MVC এর মধ্যে পার্থক্য

বৈশিষ্ট্যSpring MVCSpring Boot
কনফিগারেশনSpring MVC অ্যাপ্লিকেশন তৈরির জন্য প্রচুর কনফিগারেশন প্রয়োজন।Spring Boot স্বয়ংক্রিয়ভাবে কনফিগারেশন প্রদান করে।
সার্ভারআলাদা সার্ভার কনফিগারেশন প্রয়োজন (Tomcat, Jetty ইত্যাদি)।অন্তর্নির্মিত (Embedded) সার্ভার সহ।
প্রজেক্ট সৃষ্টির সময়অনেক কনফিগারেশন এবং XML ফাইলের প্রয়োজন।Spring Initializr ব্যবহার করে সহজে প্রজেক্ট তৈরি করা যায়।
স্ট্যান্ডঅলোন অ্যাপ্লিকেশনSpring MVC প্রজেক্ট চালাতে আলাদা সার্ভারের প্রয়োজন।Spring Boot অ্যাপ্লিকেশন স্ট্যান্ডঅলোন এবং স্বতন্ত্রভাবে চালানো যায়।
ডিপেন্ডেন্সি ম্যানেজমেন্টডিপেন্ডেন্সি ম্যানেজমেন্টের জন্য নির্দিষ্ট কনফিগারেশন প্রয়োজন।Spring Boot দ্বারা ডিপেন্ডেন্সি ম্যানেজমেন্ট স্বয়ংক্রিয়ভাবে হয়ে যায়।

Spring Boot এবং Spring MVC দিয়ে অ্যাপ্লিকেশন তৈরি করা

Spring Boot ব্যবহার করে Spring MVC অ্যাপ্লিকেশন তৈরি করা অনেক সহজ। Spring Boot আপনাকে দ্রুত Spring MVC কনফিগারেশন সম্পন্ন করতে সাহায্য করে।

Spring Boot - Spring MVC উদাহরণ:

pom.xml (Maven Dependency):

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

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

    <!-- Spring Boot Starter Test (for testing) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
</dependencies>

Main Spring Boot Class:

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 Example:

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

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "hello"; // The view name (hello.html or Thymeleaf template)
    }
}

hello.html (View):

<!DOCTYPE html>
<html>
<head>
    <title>Hello Spring MVC</title>
</head>
<body>
    <h1>Hello, Spring MVC with Spring Boot!</h1>
</body>
</html>

এখানে যা করা হয়েছে:

  1. Spring Boot অ্যাপ্লিকেশন শুরু করা হয়েছে @SpringBootApplication অ্যানোটেশন দিয়ে।
  2. Spring MVC কন্ট্রোলার তৈরি করা হয়েছে যা /hello পাথের জন্য রেসপন্স করবে।
  3. Thymeleaf ব্যবহার করে একটি ভিউ তৈরি করা হয়েছে যা রেসপন্স হিসেবে দেখানো হবে।

উপসংহার

  • Spring MVC হল একটি ওয়েব ফ্রেমওয়ার্ক যা Spring Framework এর অংশ এবং এটি ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়।
  • Spring Boot হল Spring Framework এর একটি এক্সটেনশন যা Spring অ্যাপ্লিকেশন তৈরি করার প্রক্রিয়া সহজ করে এবং কম কনফিগারেশন দিয়ে দ্রুত অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে।
  • Spring Boot Spring MVC এর উপর ভিত্তি করে কাজ করে এবং এটি Spring MVC অ্যাপ্লিকেশন তৈরি করার জন্য স্বয়ংক্রিয় কনফিগারেশন, এমবেডেড সার্ভার এবং দ্রুত ডেভেলপমেন্ট প্রদান করে।
Content added By

Spring Boot এর মাধ্যমে Spring MVC প্রজেক্ট তৈরি

70
70

Spring Boot এর মাধ্যমে Spring MVC প্রজেক্ট তৈরি করা অনেক সহজ এবং এটি Spring Framework-এর কনফিগারেশন এবং সেটআপ পদ্ধতিকে অনেকটাই সরল করে দেয়। Spring Boot প্রজেক্টে আপনি Spring MVC ফিচার সক্রিয় করতে পারবেন এবং বিভিন্ন ধরনের RESTful API বা web applications তৈরি করতে পারবেন।

এখানে আমি দেখাবো কিভাবে Spring Boot ব্যবহার করে একটি Spring MVC প্রজেক্ট তৈরি করা যায়।


Step 1: Spring Boot প্রজেক্ট তৈরি করা

Spring Initializr ব্যবহার করে Spring Boot প্রজেক্ট তৈরি করা সহজ। আপনি Spring Initializr ওয়েবসাইট (https://start.spring.io/) অথবা IDE (IntelliJ IDEA, Eclipse) ব্যবহার করতে পারেন।

Using Spring Initializr (Web Interface)

  1. Go to: Spring Initializr.
  2. Project: Gradle or Maven (Maven ব্যবহার করা সবচেয়ে সাধারণ এবং সহজ)।
  3. Language: Java।
  4. Spring Boot version: Choose the latest stable version (e.g., 2.5.x or later).
  5. Group: com.example
  6. Artifact: spring-mvc-example
  7. Dependencies:
    • Spring Web
    • Thymeleaf (Optional for View Templates, if you want to use JSP or another template engine, you can choose them too)
  8. Generate: Click on Generate to download the project.

Using IntelliJ IDEA or Eclipse:

  • IntelliJ IDEA: Go to File -> New -> Project -> Spring Initializr and select the dependencies.
  • Eclipse: Go to File -> New -> Spring Starter Project and select the dependencies.

Once the project is created, you can open it in your IDE.


Step 2: Add Dependencies

Spring Boot প্রজেক্টের pom.xml ফাইলে, আপনি Spring Web ও Thymeleaf বা JSP এর জন্য প্রয়োজনীয় ডিপেনডেন্সি থাকতে হবে।

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

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

    <!-- Spring Boot DevTools (optional for development) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- Spring Boot Starter Test (for unit testing) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
  • spring-boot-starter-web: এটি Spring MVC এবং RESTful API নির্মাণের জন্য প্রয়োজনীয় ফিচারগুলি সরবরাহ করে।
  • spring-boot-starter-thymeleaf: Thymeleaf ব্যবহার করার জন্য।
  • spring-boot-devtools: উন্নয়নকালীন ফিচার (যেমন অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে রিফ্রেশ করা)।

Step 3: Main Application Class (Spring Boot Entry Point)

Spring Boot এ আপনার প্রজেক্টের Main Class থাকে যেখানে @SpringBootApplication অ্যানোটেশন থাকে এবং এটি Spring Boot অ্যাপ্লিকেশন চালু করে।

package com.example.springmvc;

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

@SpringBootApplication
public class SpringMvcExampleApplication {

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

Explanation:

  • @SpringBootApplication: এটি একটি কম্বিনেশন অ্যানোটেশন, যা @Configuration, @EnableAutoConfiguration, এবং @ComponentScan এর সমন্বয়ে তৈরি হয়, যা Spring Boot অ্যাপ্লিকেশন শুরু করতে সাহায্য করে।

Step 4: Spring MVC Controller

এখন একটি Controller তৈরি করুন যা HTTP রিকোয়েস্টগুলো হ্যান্ডেল করবে।

package com.example.springmvc.controller;

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

@Controller
public class HomeController {

    @GetMapping("/")
    public String homePage(Model model) {
        model.addAttribute("message", "Welcome to Spring MVC with Spring Boot!");
        return "home";  // This will resolve to home.html or home.jsp based on configuration
    }
}

Explanation:

  • @Controller: Spring MVC কন্ট্রোলারকে চিহ্নিত করে।
  • @GetMapping("/"): এটি HTTP GET রিকোয়েস্ট হ্যান্ডেল করবে যেটি / পাথে আসবে।
  • Model: মডেল ব্যবহার করে আপনি ডেটা ভিউতে পাঠাতে পারেন (এখানে "message" পাঠানো হচ্ছে)।

Step 5: Create Views (HTML or JSP)

home.html (Located in /src/main/resources/templates/ for Thymeleaf)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Spring MVC with Spring Boot</title>
</head>
<body>
    <h1 th:text="${message}"></h1>
</body>
</html>

Explanation:

  • Thymeleaf এর মাধ্যমে আপনি মডেল থেকে ডেটা দেখতে পাবেন। এখানে "${message}" দ্বারা HomeController থেকে প্রাপ্ত মেসেজ রেন্ডার করা হচ্ছে।

home.jsp (Located in /src/main/webapp/WEB-INF/jsp/ for JSP)

<html>
<head>
    <title>Spring MVC with Spring Boot</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>

Explanation:

  • এখানে JSP ব্যবহার করা হয়েছে। যদি আপনি JSP ব্যবহার করতে চান, তাহলে আপনাকে Spring Boot-এ JSP কনফিগার করতে হবে। তবে Thymeleaf বেশ জনপ্রিয় এবং সাধারাণত Spring Boot প্রজেক্টে ব্যবহৃত হয়।

Step 6: Application Properties (Optional)

Spring Boot প্রজেক্টের জন্য কিছু কনফিগারেশন করতে application.properties বা application.yml ব্যবহার করা যেতে পারে।

src/main/resources/application.properties:

# Server configuration
server.port=8080

# Thymeleaf specific settings
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML

Step 7: Run the Application

  1. Run the Application:
    • Using IntelliJ IDEA: Right-click on SpringMvcExampleApplication.javaRun.
    • Using Maven Command:

      mvn spring-boot:run
      
  2. Access the Application:
    • Open your browser and go to http://localhost:8080/. You should see the home page with the message "Welcome to Spring MVC with Spring Boot!".

Conclusion

Spring Boot ব্যবহার করে Spring MVC প্রজেক্ট তৈরি করা অনেক সহজ। Spring Boot অ্যাপ্লিকেশন কনফিগারেশন এবং ডিপেনডেন্সি ম্যানেজমেন্ট অনেকটাই সরল করে দেয়, এবং Spring MVC এর মাধ্যমে আপনি RESTful APIs বা web applications তৈরি করতে পারেন। Spring Boot এর সাথে Thymeleaf ব্যবহার করলে HTML টেমপ্লেট রেন্ডারিং খুবই সহজ হয়, তবে আপনি চাইলে JSP বা অন্য টেমপ্লেট ইঞ্জিনও ব্যবহার করতে পারেন।

Content added By

Spring Boot Starter এবং Auto Configuration

155
155

Spring Boot একটি জনপ্রিয় ফ্রেমওয়ার্ক যা Spring অ্যাপ্লিকেশনগুলোকে দ্রুত ডেভেলপ করতে সহায়ক। Spring Boot Starter এবং Auto Configuration দুটি Spring Boot এর অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেভেলপারদের অ্যাপ্লিকেশন কনফিগারেশন এবং সেটআপ সহজতর করতে সহায়তা করে।

1. Spring Boot Starter:

Spring Boot Starters হল পূর্বনির্ধারিত ডিপেনডেন্সি সেট যা Spring অ্যাপ্লিকেশন তৈরি করার জন্য দরকারি বিভিন্ন লাইব্রেরি অন্তর্ভুক্ত করে। Starter গুলি Spring Boot অ্যাপ্লিকেশনের জন্য নির্দিষ্ট ফাংশনালিটি সহজেই যুক্ত করার জন্য ব্যবহার করা হয়।

উদাহরণ: Common Spring Boot Starters
  1. spring-boot-starter-web:

    • এটি একটি প্রধান স্টার্টার যা Spring MVC, Tomcat (বা অন্য সার্ভার), JSON এবং RESTful Web Services তৈরির জন্য ব্যবহৃত হয়।

    Maven Dependency:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
  2. spring-boot-starter-data-jpa:

    • এটি Spring Data JPA এবং Hibernate সেটআপের জন্য ব্যবহৃত হয়। এটি ডেটাবেসের সাথে কাজ করতে ব্যবহৃত ORM লাইব্রেরি এবং কনফিগারেশন সমূহ অন্তর্ভুক্ত করে।

    Maven Dependency:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
  3. spring-boot-starter-thymeleaf:

    • এটি Spring MVC এবং Thymeleaf টেমপ্লেট ইঞ্জিনের জন্য ব্যবহৃত হয়। এটি একটি জনপ্রিয় Java-based টেমপ্লেট ইঞ্জিন যা HTML ভিউ রেন্ডারিংয়ের জন্য ব্যবহৃত হয়।

    Maven Dependency:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    
  4. spring-boot-starter-test:

    • এটি Spring Boot অ্যাপ্লিকেশনের টেস্টিং জন্য প্রয়োজনীয় ডিপেনডেন্সি সরবরাহ করে। এতে JUnit, AssertJ, Mockito এবং Spring TestContext Framework অন্তর্ভুক্ত থাকে।

    Maven Dependency:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    

2. Spring Boot Auto Configuration:

Auto Configuration হল Spring Boot এর একটি শক্তিশালী বৈশিষ্ট্য যা Spring অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে কনফিগার করতে সহায়ক। এটি Spring Framework এর মধ্যে থাকা অনেক কনফিগারেশন এবং Bean সংক্রান্ত সেটিংস স্বয়ংক্রিয়ভাবে প্রয়োগ করে, যাতে ডেভেলপারকে অ্যাপ্লিকেশন কনফিগার করতে কম সময় ব্যয় করতে হয়।

Spring Boot এর auto-configuration মূলত আপনার ব্যবহৃত ডিপেনডেন্সি ভিত্তিক কনফিগারেশন করতে সহায়ক। উদাহরণস্বরূপ, আপনি যদি spring-boot-starter-data-jpa ব্যবহার করেন, তবে Spring Boot স্বয়ংক্রিয়ভাবে Hibernate, JPA এবং ডেটাবেস কনফিগারেশন সেটআপ করবে।

Auto Configuration কাজ করার পদ্ধতি:

  1. @SpringBootApplication:

    • @SpringBootApplication অ্যানোটেশনটি @EnableAutoConfiguration অ্যানোটেশনকে অন্তর্ভুক্ত করে। @EnableAutoConfiguration স্বয়ংক্রিয়ভাবে বিভিন্ন কনফিগারেশন ক্লাস শনাক্ত করে এবং তাদের অ্যাপ্লিকেশনে যুক্ত করে।
    @SpringBootApplication
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    
  2. Automatic Bean Registration:
    • Spring Boot ক্লাসপাথের মধ্যে উপস্থিত ডিপেনডেন্সি দেখে প্রাসঙ্গিক Bean রেজিস্টার করে।
    • উদাহরণস্বরূপ, আপনি যদি Spring Boot অ্যাপ্লিকেশনে spring-boot-starter-web ব্যবহার করেন, তবে Spring Boot স্বয়ংক্রিয়ভাবে একটি DispatcherServlet এবং Embedded Tomcat সার্ভার কনফিগার করবে।
  3. Configuration Properties:
    • Auto Configuration প্রোপার্টি ফাইল (যেমন application.properties বা application.yml) থেকে কনফিগারেশন সেটিংস গ্রহণ করে। উদাহরণস্বরূপ, ডাটাবেস সংযোগের জন্য প্রয়োজনীয় কনফিগারেশন।

Spring Boot Auto Configuration Example

ধরা যাক, আপনি একটি Spring Boot অ্যাপ্লিকেশন তৈরি করেছেন যা ডাটাবেসের সাথে কাজ করছে। spring-boot-starter-data-jpa ডিপেনডেন্সি ব্যবহার করার মাধ্যমে Spring Boot স্বয়ংক্রিয়ভাবে DataSource, EntityManagerFactory, TransactionManager এবং Hibernate কনফিগারেশন করবে। আপনাকে সেগুলোর জন্য আলাদা কনফিগারেশন ক্লাস লিখতে হবে না।

Maven Dependency for JPA:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

application.properties (Database Configuration)

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update

Spring Boot, spring-boot-starter-data-jpa ডিপেনডেন্সি এবং application.properties ফাইলের মাধ্যমে JPA এবং ডাটাবেস কনফিগারেশন স্বয়ংক্রিয়ভাবে করবে। আপনাকে কনফিগারেশন সেটআপ করার জন্য কোনও অতিরিক্ত কাজ করতে হবে না।


3. Disabling Auto Configuration

যদি আপনি কোনও নির্দিষ্ট কনফিগারেশন বন্ধ করতে চান, তবে Spring Boot @EnableAutoConfiguration অ্যানোটেশনের সাথে exclude প্যারামিটার ব্যবহার করতে পারেন।

Disabling Auto Configuration Example:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • এখানে DataSourceAutoConfiguration.class ক্লাসটি বন্ধ করা হয়েছে, যার ফলে Spring Boot ডাটাবেস কনফিগারেশন স্বয়ংক্রিয়ভাবে করবে না।

4. Customizing Auto Configuration

Spring Boot এর auto-configuration ফিচারটি কাস্টমাইজ করা যায়। আপনি যদি কোন নির্দিষ্ট কনফিগারেশন বা Bean কাস্টমাইজ করতে চান, তবে আপনি @Configuration বা @Bean অ্যানোটেশন ব্যবহার করতে পারেন।

Custom Auto Configuration Example:

@Configuration
public class CustomConfig {

    @Bean
    public MyCustomBean myCustomBean() {
        return new MyCustomBean();
    }
}

এখানে MyCustomBean কাস্টম কনফিগারেশন হিসেবে কাজ করবে।


উপসংহার:

Spring Boot Starters এবং Auto Configuration Spring Boot এর দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেভেলপারদের দ্রুত এবং কার্যকরী অ্যাপ্লিকেশন ডেভেলপ করতে সাহায্য করে। Starters বিভিন্ন ফিচারের জন্য প্রস্তুত ডিপেনডেন্সি সরবরাহ করে, যা অ্যাপ্লিকেশন তৈরি করার জন্য প্রয়োজনীয় সব কিছু একসাথে নিয়ে আসে। Auto Configuration স্বয়ংক্রিয়ভাবে নির্দিষ্ট ফিচারের জন্য কনফিগারেশন সম্পন্ন করে, যাতে ডেভেলপারকে কম কনফিগারেশন করতে হয় এবং দ্রুত অ্যাপ্লিকেশন তৈরি করা যায়।

Content added By

উদাহরণ সহ Spring Boot এবং Spring MVC Integration

110
110

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

Spring Boot স্বয়ংক্রিয়ভাবে Spring MVC কনফিগারেশন সরবরাহ করে, যার মাধ্যমে Spring MVC-এর সুবিধাগুলি সরাসরি ব্যবহার করা যায়। আমরা Spring Boot অ্যাপ্লিকেশন তৈরি করলেই Spring MVC-এর সমস্ত ফিচার পেয়ে যাব।

এখানে Spring Boot এবং Spring MVC Integration এর একটি উদাহরণ দেওয়া হবে, যাতে আমরা একটি সাধারন ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারি।


Step 1: Spring Boot স্টার্টার প্যাকেজ যোগ করা

প্রথমে, আপনি Spring Boot অ্যাপ্লিকেশন তৈরি করার জন্য Spring Boot Starter Web ডিপেনডেন্সি যোগ করবেন।

Maven Dependency:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

এটি Spring MVC এর জন্য প্রয়োজনীয় সমস্ত ডিপেনডেন্সি প্রদান করবে, যেমন Spring Web এবং Tomcat


Step 2: Spring Boot অ্যাপ্লিকেশন তৈরি করা

Spring Boot অ্যাপ্লিকেশন শুরু করতে, একটি Main Application Class তৈরি করতে হবে যেখানে @SpringBootApplication অ্যানোটেশন থাকবে, যা Spring Boot অ্যাপ্লিকেশন রান করার জন্য ব্যবহৃত হয়।

Main Application Class (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);
    }
}

Explanation:

  • @SpringBootApplication: এটি Spring Boot এর মূল অ্যানোটেশন যা @Configuration, @EnableAutoConfiguration, এবং @ComponentScan এর সমন্বয়।
  • SpringApplication.run(...): এটি Spring Boot অ্যাপ্লিকেশন শুরু করার জন্য ব্যবহৃত হয়।

Step 3: Spring MVC Controller তৈরি করা

Spring MVC Controller ব্যবহার করা হয় ক্লায়েন্টের রিকোয়েস্ট হ্যান্ডল করার জন্য। Spring Boot এবং Spring MVC একসাথে কাজ করলে, আপনি @Controller বা @RestController অ্যানোটেশন ব্যবহার করতে পারবেন।

Controller Class উদাহরণ:

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

@Controller
public class HomeController {

    @GetMapping("/")
    public String home(Model model) {
        model.addAttribute("message", "Welcome to Spring Boot and Spring MVC!");
        return "home";  // View name
    }
}

Explanation:

  • @Controller: এই অ্যানোটেশন দিয়ে আমরা Spring MVC Controller তৈরি করি, যা HTTP রিকোয়েস্ট হ্যান্ডল করতে ব্যবহৃত হবে।
  • @GetMapping("/"): এই মেথডটি GET রিকোয়েস্টের জন্য / URL পাথ ম্যাপ করবে।
  • model.addAttribute("message", "Welcome..."): model অবজেক্টের মাধ্যমে message অ্যাট্রিবিউট View এ পাঠানো হচ্ছে।
  • return "home";: এই লাইনটি বলে যে View নাম "home" হবে, যা রেন্ডার করা হবে।

Step 4: View (JSP বা Thymeleaf)

Spring Boot-এর ডিফল্ট ভিউ প্রযুক্তি হল Thymeleaf, তবে আপনি JSP ব্যবহারও করতে পারেন। এখানে Thymeleaf ব্যবহার করে একটি ভিউ তৈরি করা হচ্ছে।

home.html (Thymeleaf Example):

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Spring MVC with Spring Boot</title>
</head>
<body>
    <h1 th:text="${message}"></h1>
</body>
</html>

Explanation:

  • <h1 th:text="${message}"></h1>: Thymeleaf টেমপ্লেট ইঞ্জিনের মাধ্যমে model.addAttribute("message", "Welcome...") এর মান ভিউতে প্রদর্শিত হবে।

Step 5: Application Properties

Spring Boot অ্যাপ্লিকেশনে application.properties বা application.yml ফাইল ব্যবহার করে কনফিগারেশন করা যায়। এখানে Thymeleaf টেমপ্লেটের জন্য কনফিগারেশন করা হচ্ছে।

application.properties:

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.html

Explanation:

  • spring.mvc.view.prefix: Spring MVC কে বলে দেয় কোথায় View ফাইলগুলো থাকবে।
  • spring.mvc.view.suffix: Spring MVC কে বলে দেয় View ফাইলের এক্সটেনশন কী হবে (এখানে .html ফাইল ব্যবহার করা হচ্ছে)।

Step 6: Running the Application

Spring Boot অ্যাপ্লিকেশন রান করার জন্য, আপনি main() মেথড থেকে SpringApplication.run(SpringMvcApplication.class, args) কল করতে পারেন। অ্যাপ্লিকেশন চালানোর পর, আপনার ওয়েব অ্যাপ্লিকেশন রান করবে এবং আপনি http://localhost:8080 URL এ ব্রাউজার দিয়ে অ্যাপ্লিকেশনটি দেখতে পাবেন।


Step 7: Testing

  1. Run the Spring Boot Application: আপনার SpringMvcApplication ক্লাস চালু করুন।
  2. Open the Browser: ব্রাউজারে গিয়ে http://localhost:8080/ এ রিকোয়েস্ট পাঠান।
  3. View the Response: আপনি "Welcome to Spring Boot and Spring MVC!" মেসেজটি দেখতে পাবেন।

Step 8: Spring Boot এবং Spring MVC এর একত্রে অন্যান্য বৈশিষ্ট্য

  1. Form Handling (POST Request):
    • আপনি Spring MVC তে Form Handling এবং POST রিকোয়েস্ট ব্যবহার করতে পারেন। Spring Boot এর সাথে এই কনফিগারেশন সহজে করা যায়।
    • @ModelAttribute এবং @RequestMapping ব্যবহৃত হতে পারে।
  2. Exception Handling:
    • Spring Boot এবং Spring MVC এর Exception Handling সহজভাবে @ControllerAdvice বা @ExceptionHandler এর মাধ্যমে কনফিগার করা যায়।
  3. RESTful Web Services:
    • Spring Boot এবং Spring MVC একত্রে ব্যবহার করে RESTful API তৈরি করতে পারেন। @RestController এবং @RequestMapping এর মাধ্যমে API তৈরি করা যায়।

Conclusion

Spring Boot এবং Spring MVC একত্রে কাজ করলে আপনি সহজে এবং দ্রুত ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন। Spring Boot স্বয়ংক্রিয়ভাবে Spring MVC কনফিগারেশন সম্পাদন করে, তাই অ্যাপ্লিকেশন তৈরি করার সময় খুব কম কনফিগারেশন প্রয়োজন হয়। আপনি বিভিন্ন ধরনের Model, View, Controller কনফিগারেশন ছাড়াও, REST API, Form Handling, এবং Exception Handling সহজে ইন্টিগ্রেট করতে পারবেন।

Content added By
Promotion