Spring Boot এবং Spring MVC একসাথে ব্যবহৃত হলে একটি সিম্পল, দ্রুত এবং কনফিগারেশন-কম ওয়েব অ্যাপ্লিকেশন তৈরি করা সম্ভব হয়। Spring Boot হল Spring Framework-এর একটি এক্সটেনশন যা অ্যাপ্লিকেশন ডেভেলপমেন্ট সহজতর করে, এবং Spring MVC হল Spring Framework-এ ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত একটি গুরুত্বপূর্ণ মডিউল।
Spring Boot এবং Spring MVC ইন্টিগ্রেশন সহজ এবং দ্রুত ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে, যেখানে Spring Boot স্বয়ংক্রিয়ভাবে বেশিরভাগ কনফিগারেশন সরবরাহ করে এবং Spring MVC রিকোয়েস্ট-রেসপন্স মডেল পরিচালনা করে।
Spring Boot এবং Spring MVC ইন্টিগ্রেশন শুরু করতে প্রথমে একটি Spring Boot অ্যাপ্লিকেশন তৈরি করতে হবে। Spring Boot স্টার্টার ব্যবহার করে খুব দ্রুত একটি Spring MVC অ্যাপ্লিকেশন সেটআপ করা সম্ভব।
<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>
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 অ্যাপ্লিকেশন চালু করতে একটি প্রধান ক্লাস তৈরি করতে হবে যা @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 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"
অ্যাট্রিবিউট পাঠানো হচ্ছে)।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 অ্যাপ্লিকেশন চালানোর জন্য নিচের কমান্ড ব্যবহার করুন:
mvn spring-boot:run
এটি আপনার অ্যাপ্লিকেশনটি চালু করবে এবং আপনি ব্রাউজারে http://localhost:8080/home
URL-এ গিয়ে "Welcome to Spring Boot and 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 স্বয়ংক্রিয়ভাবে বেশিরভাগ কনফিগারেশন সাপোর্ট করে।
Spring MVC এবং Spring Boot দুটি গুরুত্বপূর্ণ উপাদান যা Spring Framework এ ব্যবহৃত হয়, তবে এগুলোর উদ্দেশ্য এবং কার্যকারিতা আলাদা।
Spring MVC (Model-View-Controller) হল Spring Framework এর একটি উপাদান যা web applications তৈরি করার জন্য ব্যবহৃত হয়। এটি একটি request-response মডেল ব্যবহার করে, যেখানে Controller রিকোয়েস্ট গ্রহণ করে, Model এর ডেটা প্রক্রিয়া করে এবং View ইউজারের জন্য উপস্থাপন করে।
Spring MVC অ্যাপ্লিকেশন তৈরি করতে আপনার অনেক কনফিগারেশন করতে হয়, যেমন:
Spring Boot হল Spring Framework এর একটি প্রকল্প যা Spring অ্যাপ্লিকেশন তৈরি করার প্রক্রিয়া সহজ করে দেয়। এটি আপনাকে কম কনফিগারেশন ও দ্রুত অ্যাপ্লিকেশন তৈরি করার সুবিধা প্রদান করে। Spring Boot অ্যাপ্লিকেশনগুলি সাধারণত এমবেডেড সার্ভার (যেমন Tomcat, Jetty, Undertow) নিয়ে আসে, এবং আপনি একটি standalone application তৈরি করতে পারেন যা সহজে চালানো যায়।
Spring Boot আপনাকে Spring MVC এর সমস্ত সুবিধা দেয়, তবে এটি সরলীকৃত কনফিগারেশন এবং দ্রুত অ্যাপ্লিকেশন ডেভেলপমেন্ট নিশ্চিত করে।
Spring Boot আপনাকে Spring MVC ব্যবহারের সমস্ত সুবিধা প্রদান করে, তবে এতে আপনাকে অনেক কনফিগারেশন করতে হয় না। Spring Boot একটি auto-configured প্রকল্প যা Spring MVC এবং অন্যান্য Spring ফিচারগুলির জন্য প্রয়োজনীয় কনফিগারেশন স্বয়ংক্রিয়ভাবে সেট করে দেয়।
বৈশিষ্ট্য | Spring MVC | Spring 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 কনফিগারেশন সম্পন্ন করতে সাহায্য করে।
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>
@SpringBootApplication
অ্যানোটেশন দিয়ে।/hello
পাথের জন্য রেসপন্স করবে।Spring Boot এর মাধ্যমে Spring MVC প্রজেক্ট তৈরি করা অনেক সহজ এবং এটি Spring Framework-এর কনফিগারেশন এবং সেটআপ পদ্ধতিকে অনেকটাই সরল করে দেয়। Spring Boot প্রজেক্টে আপনি Spring MVC ফিচার সক্রিয় করতে পারবেন এবং বিভিন্ন ধরনের RESTful API বা web applications তৈরি করতে পারবেন।
এখানে আমি দেখাবো কিভাবে Spring Boot ব্যবহার করে একটি Spring MVC প্রজেক্ট তৈরি করা যায়।
Spring Initializr ব্যবহার করে Spring Boot প্রজেক্ট তৈরি করা সহজ। আপনি Spring Initializr ওয়েবসাইট (https://start.spring.io/) অথবা IDE (IntelliJ IDEA, Eclipse) ব্যবহার করতে পারেন।
File
-> New
-> Project
-> Spring Initializr
and select the dependencies.File
-> New
-> Spring Starter Project
and select the dependencies.Once the project is created, you can open it in your IDE.
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
: উন্নয়নকালীন ফিচার (যেমন অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে রিফ্রেশ করা)।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);
}
}
@SpringBootApplication
: এটি একটি কম্বিনেশন অ্যানোটেশন, যা @Configuration
, @EnableAutoConfiguration
, এবং @ComponentScan
এর সমন্বয়ে তৈরি হয়, যা Spring Boot অ্যাপ্লিকেশন শুরু করতে সাহায্য করে।এখন একটি 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
}
}
@Controller
: Spring MVC কন্ট্রোলারকে চিহ্নিত করে।@GetMapping("/")
: এটি HTTP GET রিকোয়েস্ট হ্যান্ডেল করবে যেটি /
পাথে আসবে।Model
: মডেল ব্যবহার করে আপনি ডেটা ভিউতে পাঠাতে পারেন (এখানে "message" পাঠানো হচ্ছে)।/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>
"${message}"
দ্বারা HomeController
থেকে প্রাপ্ত মেসেজ রেন্ডার করা হচ্ছে।/src/main/webapp/WEB-INF/jsp/
for JSP)<html>
<head>
<title>Spring MVC with Spring Boot</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
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
SpringMvcExampleApplication.java
→ Run
.Using Maven Command:
mvn spring-boot:run
http://localhost:8080/
. You should see the home page with the message "Welcome to Spring MVC with Spring Boot!".Spring Boot ব্যবহার করে Spring MVC প্রজেক্ট তৈরি করা অনেক সহজ। Spring Boot অ্যাপ্লিকেশন কনফিগারেশন এবং ডিপেনডেন্সি ম্যানেজমেন্ট অনেকটাই সরল করে দেয়, এবং Spring MVC এর মাধ্যমে আপনি RESTful APIs বা web applications তৈরি করতে পারেন। Spring Boot এর সাথে Thymeleaf ব্যবহার করলে HTML টেমপ্লেট রেন্ডারিং খুবই সহজ হয়, তবে আপনি চাইলে JSP বা অন্য টেমপ্লেট ইঞ্জিনও ব্যবহার করতে পারেন।
Spring Boot একটি জনপ্রিয় ফ্রেমওয়ার্ক যা Spring অ্যাপ্লিকেশনগুলোকে দ্রুত ডেভেলপ করতে সহায়ক। Spring Boot Starter এবং Auto Configuration দুটি Spring Boot এর অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেভেলপারদের অ্যাপ্লিকেশন কনফিগারেশন এবং সেটআপ সহজতর করতে সহায়তা করে।
Spring Boot Starters হল পূর্বনির্ধারিত ডিপেনডেন্সি সেট যা Spring অ্যাপ্লিকেশন তৈরি করার জন্য দরকারি বিভিন্ন লাইব্রেরি অন্তর্ভুক্ত করে। Starter গুলি Spring Boot অ্যাপ্লিকেশনের জন্য নির্দিষ্ট ফাংশনালিটি সহজেই যুক্ত করার জন্য ব্যবহার করা হয়।
spring-boot-starter-web:
Maven Dependency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter-data-jpa:
Maven Dependency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
spring-boot-starter-thymeleaf:
Maven Dependency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
spring-boot-starter-test:
Maven Dependency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
Auto Configuration হল Spring Boot এর একটি শক্তিশালী বৈশিষ্ট্য যা Spring অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে কনফিগার করতে সহায়ক। এটি Spring Framework এর মধ্যে থাকা অনেক কনফিগারেশন এবং Bean সংক্রান্ত সেটিংস স্বয়ংক্রিয়ভাবে প্রয়োগ করে, যাতে ডেভেলপারকে অ্যাপ্লিকেশন কনফিগার করতে কম সময় ব্যয় করতে হয়।
Spring Boot এর auto-configuration মূলত আপনার ব্যবহৃত ডিপেনডেন্সি ভিত্তিক কনফিগারেশন করতে সহায়ক। উদাহরণস্বরূপ, আপনি যদি spring-boot-starter-data-jpa
ব্যবহার করেন, তবে Spring Boot স্বয়ংক্রিয়ভাবে Hibernate, JPA এবং ডেটাবেস কনফিগারেশন সেটআপ করবে।
@SpringBootApplication:
@SpringBootApplication
অ্যানোটেশনটি @EnableAutoConfiguration
অ্যানোটেশনকে অন্তর্ভুক্ত করে। @EnableAutoConfiguration
স্বয়ংক্রিয়ভাবে বিভিন্ন কনফিগারেশন ক্লাস শনাক্ত করে এবং তাদের অ্যাপ্লিকেশনে যুক্ত করে।@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
spring-boot-starter-web
ব্যবহার করেন, তবে Spring Boot স্বয়ংক্রিয়ভাবে একটি DispatcherServlet
এবং Embedded Tomcat
সার্ভার কনফিগার করবে।application.properties
বা application.yml
) থেকে কনফিগারেশন সেটিংস গ্রহণ করে। উদাহরণস্বরূপ, ডাটাবেস সংযোগের জন্য প্রয়োজনীয় কনফিগারেশন।ধরা যাক, আপনি একটি Spring Boot অ্যাপ্লিকেশন তৈরি করেছেন যা ডাটাবেসের সাথে কাজ করছে। spring-boot-starter-data-jpa
ডিপেনডেন্সি ব্যবহার করার মাধ্যমে Spring Boot স্বয়ংক্রিয়ভাবে DataSource, EntityManagerFactory, TransactionManager এবং Hibernate কনফিগারেশন করবে। আপনাকে সেগুলোর জন্য আলাদা কনফিগারেশন ক্লাস লিখতে হবে না।
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
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 এবং ডাটাবেস কনফিগারেশন স্বয়ংক্রিয়ভাবে করবে। আপনাকে কনফিগারেশন সেটআপ করার জন্য কোনও অতিরিক্ত কাজ করতে হবে না।
যদি আপনি কোনও নির্দিষ্ট কনফিগারেশন বন্ধ করতে চান, তবে Spring Boot @EnableAutoConfiguration
অ্যানোটেশনের সাথে exclude
প্যারামিটার ব্যবহার করতে পারেন।
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
DataSourceAutoConfiguration.class
ক্লাসটি বন্ধ করা হয়েছে, যার ফলে Spring Boot ডাটাবেস কনফিগারেশন স্বয়ংক্রিয়ভাবে করবে না।Spring Boot এর auto-configuration ফিচারটি কাস্টমাইজ করা যায়। আপনি যদি কোন নির্দিষ্ট কনফিগারেশন বা Bean কাস্টমাইজ করতে চান, তবে আপনি @Configuration
বা @Bean
অ্যানোটেশন ব্যবহার করতে পারেন।
@Configuration
public class CustomConfig {
@Bean
public MyCustomBean myCustomBean() {
return new MyCustomBean();
}
}
এখানে MyCustomBean
কাস্টম কনফিগারেশন হিসেবে কাজ করবে।
Spring Boot Starters এবং Auto Configuration Spring Boot এর দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেভেলপারদের দ্রুত এবং কার্যকরী অ্যাপ্লিকেশন ডেভেলপ করতে সাহায্য করে। Starters বিভিন্ন ফিচারের জন্য প্রস্তুত ডিপেনডেন্সি সরবরাহ করে, যা অ্যাপ্লিকেশন তৈরি করার জন্য প্রয়োজনীয় সব কিছু একসাথে নিয়ে আসে। Auto Configuration স্বয়ংক্রিয়ভাবে নির্দিষ্ট ফিচারের জন্য কনফিগারেশন সম্পন্ন করে, যাতে ডেভেলপারকে কম কনফিগারেশন করতে হয় এবং দ্রুত অ্যাপ্লিকেশন তৈরি করা যায়।
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 এর একটি উদাহরণ দেওয়া হবে, যাতে আমরা একটি সাধারন ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারি।
প্রথমে, আপনি 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।
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 অ্যাপ্লিকেশন শুরু করার জন্য ব্যবহৃত হয়।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"
হবে, যা রেন্ডার করা হবে।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...")
এর মান ভিউতে প্রদর্শিত হবে।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
ফাইল ব্যবহার করা হচ্ছে)।Spring Boot অ্যাপ্লিকেশন রান করার জন্য, আপনি main()
মেথড থেকে SpringApplication.run(SpringMvcApplication.class, args)
কল করতে পারেন। অ্যাপ্লিকেশন চালানোর পর, আপনার ওয়েব অ্যাপ্লিকেশন রান করবে এবং আপনি http://localhost:8080 URL এ ব্রাউজার দিয়ে অ্যাপ্লিকেশনটি দেখতে পাবেন।
SpringMvcApplication
ক্লাস চালু করুন।http://localhost:8080/
এ রিকোয়েস্ট পাঠান।@ModelAttribute
এবং @RequestMapping
ব্যবহৃত হতে পারে।@ControllerAdvice
বা @ExceptionHandler
এর মাধ্যমে কনফিগার করা যায়।@RestController
এবং @RequestMapping
এর মাধ্যমে API তৈরি করা যায়।Spring Boot এবং Spring MVC একত্রে কাজ করলে আপনি সহজে এবং দ্রুত ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন। Spring Boot স্বয়ংক্রিয়ভাবে Spring MVC কনফিগারেশন সম্পাদন করে, তাই অ্যাপ্লিকেশন তৈরি করার সময় খুব কম কনফিগারেশন প্রয়োজন হয়। আপনি বিভিন্ন ধরনের Model, View, Controller কনফিগারেশন ছাড়াও, REST API, Form Handling, এবং Exception Handling সহজে ইন্টিগ্রেট করতে পারবেন।
Read more