@RequestMapping হল Spring MVC-তে একটি অত্যন্ত গুরুত্বপূর্ণ অ্যানোটেশন যা একটি HTTP রিকোয়েস্টের URL পাথ এবং HTTP মেথড (GET, POST, PUT, DELETE ইত্যাদি) এর সাথে একটি মেথডের ম্যাপিং তৈরির জন্য ব্যবহৃত হয়। এটি ব্যবহার করে আপনি একটি নির্দিষ্ট URL বা পাথ এর জন্য কন্ট্রোলারের মেথড কল করতে পারেন।
Spring 4.3 এর পরে, @RequestMapping এর বিভিন্ন ধরনের HTTP মেথডের জন্য আলাদা আলাদা অ্যানোটেশন এসেছে, যেমন @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, ইত্যাদি। তবে, @RequestMapping এখনও একটি মৌলিক এবং বহুল ব্যবহৃত অ্যানোটেশন।
@RequestMapping এর মৌলিক ব্যবহার
@RequestMapping সাধারণত কন্ট্রোলার মেথডের উপর রাখা হয়, এবং এটি URL পাথ এবং HTTP মেথডের সাথে কন্ট্রোলার মেথডের ম্যাপিং তৈরি করে।
উদাহরণ: @RequestMapping
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@RequestMapping("/hello")
public String sayHello() {
return "Hello, Spring MVC!";
}
}
এখানে, /hello URL রিকোয়েস্টে sayHello() মেথডটি কল হবে এবং "Hello, Spring MVC!" টেক্সট রিটার্ন করবে।
@RequestMapping এর বিভিন্ন প্রপার্টি
@RequestMapping এর অনেক প্রপার্টি রয়েছে, যার মাধ্যমে আপনি URL, HTTP মেথড, কনসামের টাইপ, প্রোডিউসারের টাইপ, এবং আরও অনেক কিছু কনফিগার করতে পারেন।
প্রপার্টি:
- value: URL পাথ যা HTTP রিকোয়েস্টের সাথে ম্যাপ হবে।
- method: HTTP মেথড (GET, POST, PUT, DELETE ইত্যাদি) সুনির্দিষ্ট করতে ব্যবহৃত হয়।
- params: রিকোয়েস্ট প্যারামিটার যাচাই করার জন্য ব্যবহৃত হয়।
- headers: নির্দিষ্ট HTTP হেডারের সাথে রিকোয়েস্টের ম্যাচ করতে ব্যবহৃত হয়।
- produces: রিকোয়েস্টের জন্য কনটেন্ট টাইপ নির্ধারণ করে।
- consumes: রিকোয়েস্টের জন্য কনটেন্ট টাইপ নির্ধারণ করে (কেন আপনি কী ধরণের ডেটা গ্রহণ করতে চান)।
@RequestMapping এর উদাহরণ:
- Basic URL Mapping:
@RequestMapping("/greet")
public String greet() {
return "Greetings from Spring MVC!";
}
- HTTP Method Mapping (GET, POST, PUT, DELETE):
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String saveData() {
return "Data saved successfully!";
}
- URL Mapping with Parameters:
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
public String getUser(@PathVariable String id) {
return "User ID: " + id;
}
- Consumes and Produces Example:
@RequestMapping(value = "/product", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
public ResponseEntity<String> createProduct(@RequestBody Product product) {
// Process product
return new ResponseEntity<>("Product created", HttpStatus.CREATED);
}
Spring 4.3+ HTTP Method Specific Annotations
Spring 4.3+ থেকে @RequestMapping এর বিভিন্ন HTTP মেথডের জন্য আলাদা অ্যানোটেশন তৈরি করা হয়েছে যা কোডকে আরও পরিষ্কার এবং স্পষ্ট করে তোলে। যেমন:
- @GetMapping: HTTP GET রিকোয়েস্টের জন্য।
- @PostMapping: HTTP POST রিকোয়েস্টের জন্য।
- @PutMapping: HTTP PUT রিকোয়েস্টের জন্য।
- @DeleteMapping: HTTP DELETE রিকোয়েস্টের জন্য।
- @PatchMapping: HTTP PATCH রিকোয়েস্টের জন্য।
উদাহরণ: @GetMapping
@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring MVC!";
}
উদাহরণ: @PostMapping
@PostMapping("/save")
public String saveData(@RequestBody MyData data) {
// Save the data
return "Data saved successfully!";
}
উদাহরণ: @PutMapping
@PutMapping("/update/{id}")
public String updateData(@PathVariable String id, @RequestBody MyData data) {
// Update the data with the given ID
return "Data updated successfully for ID: " + id;
}
উদাহরণ: @DeleteMapping
@DeleteMapping("/delete/{id}")
public String deleteData(@PathVariable String id) {
// Delete the data with the given ID
return "Data deleted successfully for ID: " + id;
}
@RequestMapping ও অন্যান্য অ্যানোটেশন এর তুলনা
| অ্যানোটেশন | HTTP Method | বিবরণ |
|---|---|---|
@RequestMapping | GET, POST, PUT, DELETE, PATCH | যেকোনো HTTP মেথডের জন্য ব্যবহৃত হয়। |
@GetMapping | GET | GET রিকোয়েস্টের জন্য ব্যবহৃত হয়। |
@PostMapping | POST | POST রিকোয়েস্টের জন্য ব্যবহৃত হয়। |
@PutMapping | PUT | PUT রিকোয়েস্টের জন্য ব্যবহৃত হয়। |
@DeleteMapping | DELETE | DELETE রিকোয়েস্টের জন্য ব্যবহৃত হয়। |
@PatchMapping | PATCH | PATCH রিকোয়েস্টের জন্য ব্যবহৃত হয়। |
উপসংহার
@RequestMapping হল Spring MVC-তে URL এবং HTTP মেথডের সাথে মেথড ম্যাপিং করার জন্য ব্যবহৃত একটি শক্তিশালী অ্যানোটেশন। Spring 4.3+ থেকে এর জন্য বিভিন্ন স্পেসিফিক অ্যানোটেশন যেমন @GetMapping, @PostMapping, @PutMapping, এবং @DeleteMapping এসেছে যা কোডটিকে আরও পরিষ্কার এবং পাঠযোগ্য করে তোলে।
এটি Spring MVC অ্যাপ্লিকেশনে রিকোয়েস্ট হ্যান্ডলিং এবং URL ম্যাপিংয়ের ক্ষেত্রে একটি গুরুত্বপূর্ণ উপাদান হিসেবে কাজ করে।
Read more