Template Expressions কী?
Template Expressions স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (SpEL) এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ব্যবহারকারীর আউটপুট বা ডাইনামিক কনফিগারেশন তৈরি করার জন্য ব্যবহৃত হয়। এটি #{} এবং ${} এর মাধ্যমে এক্সপ্রেশন ব্যবহার করার সুযোগ দেয়, যা টেমপ্লেটিং সিস্টেমে চলমান সময়ে মান প্রবাহিত করে।
Template Expressions এর দুটি প্রধান ধরনের সেগমেন্ট:
- SpEL Expression:
#{}— এটি SpEL কনটেক্সটে এক্সপ্রেশন প্রক্রিয়া করে। - Property Placeholder Expression:
${}— এটি স্প্রিং কনফিগারেশন ফাইলের মধ্যে প্রপার্টি বা সেটিংস ইনজেক্ট করার জন্য ব্যবহৃত হয়।
SpEL Template Expressions এর ব্যবহার
১. #{} SpEL Expression
স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজে #{} দ্বারা লেখা এক্সপ্রেশন সরাসরি স্প্রিং কনটেক্সটে কার্যকর করা হয়। এটি ডাইনামিক্যালি মান, অপারেশন বা ফাংশন এক্সিকিউট করে।
উদাহরণ:
#{ 10 + 20 }
এটি SpEL এর মাধ্যমে গাণিতিক যোগফল নির্ণয় করবে এবং ফলস্বরূপ 30 রিটার্ন করবে।
উদাহরণ ২: Method Call with SpEL Expression
#{T(java.lang.Math).pow(2, 3)}
এখানে, SpEL দ্বারা Math.pow(2, 3) মেথড কল করা হচ্ছে, যা 2 এর তৃতীয় ক্ষমতাকে রিটার্ন করবে, অর্থাৎ 8।
উদাহরণ ৩: Property Value Access
<bean id="myBean" class="com.example.MyClass">
<property name="message" value="#{systemProperties['user.name']}"/>
</bean>
এখানে, systemProperties['user.name'] ব্যবহার করা হচ্ছে বর্তমান ইউজারের নাম সংগ্রহ করতে।
উদাহরণ ৪: Collection থেকে ডেটা Access
#{list[0]}
এটি list নামক একটি কলোকশন থেকে প্রথম উপাদানটি অ্যাক্সেস করবে।
২. ${} Property Placeholder Expression
স্প্রিং কনফিগারেশন ফাইলের মধ্যে ${} ব্যবহৃত হয় স্প্রিং প্রপার্টি বা সেটিংস ইনজেক্ট করতে। এটি সাধারণত application.properties বা application.yml ফাইল থেকে ভ্যালু পেতে ব্যবহৃত হয়।
উদাহরণ:
<bean id="myBean" class="com.example.MyClass">
<property name="message" value="${greetingMessage}"/>
</bean>
এখানে, ${greetingMessage} একটি স্প্রিং কনফিগারেশন প্রপার্টি (যেমন greetingMessage) থেকে মান নেয়। আপনি এই প্রপার্টি ফাইল application.properties এ সংজ্ঞায়িত করতে পারেন:
greetingMessage=Hello, World!
এটি Hello, World! টেক্সট ইনজেক্ট করবে myBean এর message প্রপার্টিতে।
উদাহরণ ২: প্রপার্টি ফাইল থেকে ডাইনামিক মান
<bean id="configBean" class="com.example.ConfigBean">
<property name="configValue" value="${config.property}"/>
</bean>
এখানে ${config.property} প্রপার্টি ফাইল থেকে মান ইনজেক্ট করবে:
config.property=Dynamic Config Value
Template Expressions এর সুবিধা
- ডাইনামিক কনফিগারেশন: স্প্রিং কনফিগারেশন ফাইলের মধ্যে
${}ব্যবহার করে আপনি কনফিগারেশন সেটিংস সহজেই ম্যানেজ এবং পরিবর্তন করতে পারেন। - গণনা এবং শর্ত:
#{}ব্যবহার করে শর্ত এবং গাণিতিক গণনা করার মাধ্যমে আপনি আরো জটিল কনফিগারেশন এক্সপ্রেশন তৈরি করতে পারেন। - অবজেক্ট ম্যানিপুলেশন: স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজের মাধ্যমে আপনি অবজেক্ট ম্যানিপুলেশন সহজে করতে পারেন, যেমন পদ্ধতি কল বা ভেরিয়েবল অ্যাক্সেস করা।
- ফ্লেক্সিবিলিটি: স্প্রিং কনফিগারেশন ফাইলে ভ্যালু ইনজেকশন এবং ডাইনামিক এক্সপ্রেশন ব্যবহারের মাধ্যমে ফ্লেক্সিবিলিটি বৃদ্ধি পায়।
সারাংশ
স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (SpEL) Template Expressions ব্যবহার করার মাধ্যমে স্প্রিং কনফিগারেশন এবং কোডে ডাইনামিক এক্সপ্রেশন সহজে প্রয়োগ করা সম্ভব। #{} এবং ${} এক্সপ্রেশন দুটি ভিন্ন কাজ করে, যেখানে #{} SpEL কনটেক্সটে সরাসরি এক্সপ্রেশন প্রক্রিয়া করে, এবং ${} স্প্রিং প্রপার্টি প্লেসহোল্ডার এক্সপ্রেশন যা কনফিগারেশন ফাইল থেকে মান ইনজেক্ট করতে ব্যবহৃত হয়। SpEL এর এই সুবিধাগুলো স্প্রিং কনফিগারেশন ফাইল এবং কোডকে আরো শক্তিশালী, নমনীয় এবং ডাইনামিক করে তোলে।
Template Expressions কি?
Template Expressions হল SpEL (Spring Expression Language) এর একটি ফিচার, যা Spring অ্যাপ্লিকেশনে ডাইনামিক ভ্যালু ইনজেকশন এবং কনফিগারেশন সরবরাহ করতে ব্যবহৃত হয়। এটি Spring Beans, XML কনফিগারেশন ফাইল এবং অন্যান্য টেমপ্লেটিং ব্যবস্থায় এক্সপ্রেশন ল্যাঙ্গুয়েজ ব্যবহার করে কনফিগারেশন এবং ডেটা ম্যানিপুলেশন পরিচালনা করে।
Spring এ Template Expressions বেশিরভাগ ক্ষেত্রে ${} চিহ্ন দ্বারা চিহ্নিত করা হয় এবং এগুলি Spring Beans, প্রপার্টি ফাইল, এবং XML কনফিগারেশনের মধ্যে ডাইনামিক ভ্যালু ইনজেকশনের জন্য ব্যবহৃত হয়। এই এক্সপ্রেশনগুলো Spring কোডের মধ্যে ডাইনামিক মান ইনজেক্ট করতে সক্ষম করে, যাতে সেটিংস বা কনফিগারেশন পরিবর্তন করা যায় কোড পরিবর্তন ছাড়াই।
Template Expressions এর মূল ধারণা
Template Expressions এর মাধ্যমে Spring ফ্রেমওয়ার্কে আপনি বিভিন্ন ভ্যালু বা এক্সপ্রেশনকে ইনজেক্ট করতে পারেন, যা রানটাইমে ডাইনামিকভাবে মূল্যায়ন করা হয়। SpEL টেমপ্লেট এক্সপ্রেশনগুলি মূলত properties, environment variables, এবং Spring Beans এর ভ্যালু অ্যাক্সেস করার জন্য ব্যবহৃত হয়।
Template Expressions ব্যবহার করতে, আপনি Spring Beans কনফিগারেশন ফাইল বা অন্য কোথাও ${} সিনট্যাক্স ব্যবহার করেন, যেখানে একটি স্পষ্ট এক্সপ্রেশন লেখা থাকে যা ডাইনামিক ভ্যালু রিটার্ন করবে।
Template Expressions এর ব্যবহার
১. Spring Beans XML কনফিগারেশনে Template Expression
Spring XML কনফিগারেশন ফাইলে #{} এবং ${} টেমপ্লেট এক্সপ্রেশন ব্যবহার করা যেতে পারে। সাধারণত ${} ব্যবহার করে প্যারামিটার বা প্রপার্টি ফাইলের ভ্যালু ইনজেক্ট করা হয়।
উদাহরণ:
<bean id="employee" class="com.example.Employee">
<property name="name" value="${employee.name}"/>
<property name="department" value="${employee.department}"/>
</bean>
এখানে, ${employee.name} এবং ${employee.department} Spring এর প্রপার্টি ফাইল থেকে ডাইনামিক ভ্যালু ইনজেক্ট করবে।
২. Properties File এর মাধ্যমে Template Expressions
Spring ApplicationContext এ properties files ব্যবহার করে বিভিন্ন কনফিগারেশন ভ্যালু ইনজেক্ট করার জন্য ${} টেমপ্লেট এক্সপ্রেশন ব্যবহার করা যায়। application.properties বা application.yml ফাইলের মাধ্যমে এই ভ্যালু গুলো সেট করা হয়।
application.properties
employee.name=John Doe
employee.department=IT
Spring Bean Configuration (XML)
<bean id="employee" class="com.example.Employee">
<property name="name" value="${employee.name}"/>
<property name="department" value="${employee.department}"/>
</bean>
এখানে, Spring application.properties ফাইল থেকে employee.name এবং employee.department ভ্যালু ইনজেক্ট করবে।
৩. Template Expressions ব্যবহার করে Spring Beans তৈরি করা
Spring Framework এ Template Expressions ব্যবহার করে ডাইনামিকভাবে Bean তৈরি করা সম্ভব। উদাহরণস্বরূপ, Spring Bean এর প্রপার্টি বা ফিল্ডের মান পরিবর্তন করতে Template Expressions ব্যবহৃত হতে পারে।
Employee.java (Bean Class)
public class Employee {
private String name;
private String department;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
}
Spring Bean Configuration (Java-based configuration)
@Configuration
public class AppConfig {
@Value("${employee.name}")
private String employeeName;
@Value("${employee.department}")
private String employeeDepartment;
@Bean
public Employee employee() {
Employee employee = new Employee();
employee.setName(employeeName);
employee.setDepartment(employeeDepartment);
return employee;
}
}
এখানে @Value("${employee.name}") টেমপ্লেট এক্সপ্রেশন ব্যবহার করা হয়েছে application.properties থেকে ডাইনামিকভাবে ভ্যালু ইনজেক্ট করার জন্য।
৪. SpEL (Spring Expression Language) Template Expression
SpEL টেমপ্লেট এক্সপ্রেশন ব্যবহার করে Spring Beans বা প্রপার্টির সাথে আরও জটিল এক্সপ্রেশন প্রয়োগ করা যায়।
Employee.java
public class Employee {
private String name;
private String department;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public String getDetails() {
return "Name: " + name + ", Department: " + department;
}
}
Spring Bean Configuration (XML)
<bean id="employee" class="com.example.Employee">
<property name="name" value="#{systemProperties['user.name']}"/>
<property name="department" value="IT"/>
</bean>
এখানে, #{systemProperties['user.name']} SpEL টেমপ্লেট এক্সপ্রেশন ব্যবহার করে user.name সিস্টেম প্রপার্টি এর মান Spring Bean এর name প্রপার্টিতে ইনজেক্ট করা হয়েছে।
Template Expressions এর সুবিধা
- ডাইনামিক ভ্যালু ইনজেকশন: টেমপ্লেট এক্সপ্রেশনগুলি ডাইনামিকভাবে প্রপার্টি ফাইল বা কনফিগারেশন থেকে ভ্যালু ইনজেক্ট করতে সাহায্য করে।
- সুবিধাজনক কনফিগারেশন: Spring Beans এবং প্রপার্টি ফাইলগুলির মধ্যে ডাইনামিক ভ্যালু এক্সপ্রেশন ব্যবহারের মাধ্যমে কনফিগারেশন দ্রুত এবং সহজ করা যায়।
- Spring এর সাথে গভীর ইন্টিগ্রেশন: টেমপ্লেট এক্সপ্রেশন ব্যবহার করে Spring Beans এবং Spring কনফিগারেশন সিস্টেমের মধ্যে গভীর সম্পর্ক স্থাপন করা যায়।
- SpEL এর মাধ্যমে শক্তিশালী এক্সপ্রেশন: SpEL ব্যবহার করে টেমপ্লেট এক্সপ্রেশন আরো জটিল লজিক এবং ক্যালকুলেশন ইনজেক্ট করতে সক্ষম হয়।
সারাংশ
Template Expressions হল SpEL এর একটি শক্তিশালী বৈশিষ্ট্য, যা Spring Beans এবং কনফিগারেশন ফাইলের মধ্যে ডাইনামিকভাবে ভ্যালু ইনজেক্ট করার জন্য ব্যবহৃত হয়। এটি Spring অ্যাপ্লিকেশনের কনফিগারেশন, প্রপার্টি ফাইল, এবং Beans এর মধ্যে ডাইনামিক সম্পর্ক তৈরি করতে সহায়ক। SpEL টেমপ্লেট এক্সপ্রেশন ব্যবহারের মাধ্যমে আপনি Spring Beans এবং প্রপার্টি ফাইলের মধ্যে কার্যকরী এবং সহজ এক্সপ্রেশন ল্যাঙ্গুয়েজ প্রয়োগ করতে পারেন।
Spring Expression Language (SpEL) একটি শক্তিশালী ভাষা যা আপনাকে Spring অ্যাপ্লিকেশনগুলোতে ডাইনামিক এক্সপ্রেশন এবং ডেটা ম্যানিপুলেশন করতে সহায়তা করে। SpEL আপনাকে String Templates তৈরি এবং ব্যবহারের মাধ্যমে ডায়নামিক ডেটা জেনারেট করতে দেয়, যা বিভিন্ন ডেটা সঞ্চয় বা ম্যানিপুলেশন সহজ করে।
String Templates ব্যবহার করে SpEL এর মাধ্যমে আপনি একটি স্ট্যাটিক স্ট্রিং এর মধ্যে ডাইনামিক ডেটা অ্যাড করতে পারেন এবং সেই স্ট্রিংটিকে runtime এ বিভিন্ন কন্ডিশনের ভিত্তিতে পরিবর্তন করতে পারেন। এর মাধ্যমে আপনি Spring Beans এবং অন্যান্য ডাইনামিক ডেটার সাথে ইন্টারঅ্যাক্ট করতে পারেন।
String Template এবং SpEL এর ব্যবহার
String Template-এর মাধ্যমে SpEL ব্যবহার করলে আপনি স্ট্রিংয়ের মধ্যে Spring Beans, প্রপার্টি, প্যারামিটার অথবা মেথড কল দিয়ে ডাইনামিক ডেটা যুক্ত করতে পারেন।
উদাহরণ: String Template ব্যবহার করে ডায়নামিক স্ট্রিং জেনারেট করা
ধরা যাক, আপনি একটি EmployeeService ক্লাস তৈরি করেছেন যা স্ট্রিং টেমপ্লেটের মাধ্যমে Employee নামের একটি স্ট্রিং তৈরি করতে সাহায্য করবে।
১. EmployeeService ক্লাস
@Component
public class EmployeeService {
public String getEmployeeMessage(String name, int id) {
return "Employee: " + name + ", ID: " + id;
}
}
এখানে, getEmployeeMessage() মেথডটি ডাইনামিকভাবে name এবং id প্রপার্টি যুক্ত করে একটি স্ট্রিং তৈরি করে।
২. Spring Configuration - SpEL String Template
স্পেল ব্যবহার করে EmployeeService থেকে ডাইনামিক স্ট্রিং জেনারেট করার জন্য আমরা Spring কনফিগারেশন ফাইলে String Template ব্যবহার করব।
XML কনফিগারেশন:
<bean id="employeeService" class="com.example.EmployeeService"/>
<bean id="employeeMessage" class="com.example.EmployeeMessage">
<property name="message" value="#{employeeService.getEmployeeMessage('John', 101)}"/>
</bean>
বর্ণনা:
- এখানে SpEL ব্যবহার করে
employeeService.getEmployeeMessage('John', 101)মেথড কল করা হয়েছে, যার মাধ্যমেJohnএবং101প্যারামিটার দিয়ে স্ট্রিং তৈরি করা হয়েছে। #{}এই সিনট্যাক্সটি SpEL এক্সপ্রেশন নির্দেশ করে, যা Spring কনটেইনার দ্বারা ইভ্যালুয়েট হয়।
String Template এর মাধ্যমে SpEL ব্যবহার করার সুবিধা
- ডাইনামিক স্ট্রিং জেনারেশন: SpEL এর String Template ব্যবহার করে runtime এ ডাইনামিক স্ট্রিং তৈরি করা যায়, যা অ্যাপ্লিকেশনকে আরো নমনীয় এবং কাস্টমাইজযোগ্য করে তোলে।
- কনফিগারেশন সহজতা: Spring Beans-এর মাধ্যমে স্ট্রিং টেমপ্লেটের ডাইনামিক ডেটা ইন্টিগ্রেশন সহজ হয়ে ওঠে। Spring কনফিগারেশন ফাইল বা অ্যানোটেশন ব্যবহার করে এই টেমপ্লেটগুলো সংজ্ঞায়িত করা যায়।
- মেথড কলিং সহ ডেটা প্রক্রিয়াকরণ: SpEL-এর মাধ্যমে শুধুমাত্র ডেটা এক্সপ্রেশন বা গাণিতিক অপারেশনই নয়, বরং মেথড কলের মাধ্যমে ডাইনামিক ডেটাও এক্সপ্রেস করা সম্ভব হয়।
উদাহরণ: String Template-এ SpEL ব্যবহার এবং ফিল্ড ইনজেকশন
Spring-এর @Value অ্যানোটেশন ব্যবহার করে SpEL-এ String Template ইনজেকশন করা যেতে পারে। এখানে, একটি ফিল্ডে String Template এর মাধ্যমে ডাইনামিক ডেটা অ্যাসাইন করা হচ্ছে।
৩. EmployeeController ক্লাস এবং SpEL String Template ইনজেকশন
@Component
public class EmployeeController {
@Value("#{employeeService.getEmployeeMessage('Alice', 102)}")
private String employeeMessage;
public String getEmployeeMessage() {
return employeeMessage;
}
}
বর্ণনা:
- এখানে
employeeService.getEmployeeMessage('Alice', 102)এই SpEL এক্সপ্রেশনটিEmployeeServiceএরgetEmployeeMessage()মেথড কল করে এবংAliceএবং102প্যারামিটার দ্বারা একটি স্ট্রিং তৈরি করে। @Valueঅ্যানোটেশন ব্যবহার করে ডাইনামিকভাবে সেই স্ট্রিংটিemployeeMessageপ্রপার্টিতে ইনজেক্ট করা হয়েছে।
৪. Controller এর মাধ্যমে ডায়নামিক ডেটা অ্যাক্সেস
@RestController
@RequestMapping("/employee")
public class EmployeeRestController {
@Autowired
private EmployeeController employeeController;
@GetMapping("/message")
public String getEmployeeMessage() {
return employeeController.getEmployeeMessage();
}
}
এখন, GET /employee/message এপিআই কল করলে SpEL এর মাধ্যমে তৈরি হওয়া ডাইনামিক স্ট্রিং রিটার্ন হবে।
SpEL String Template এর আরও কিছু ব্যবহার
- Spring MVC-এ Dynamic Path Generation: URL বা URL পাথ তৈরি করার সময় SpEL ব্যবহার করা যেতে পারে।
- Security Configurations: Spring Security-তে SpEL দিয়ে ডাইনামিক রোল বা পারমিশন চেক করা।
- Condition Based Message Generation: বিভিন্ন শর্তের ভিত্তিতে এক্সপ্রেশন ব্যবহার করে মেসেজ জেনারেট করা, যেমন
if-elseলজিক।
সারাংশ
SpEL (Spring Expression Language) এর মাধ্যমে String Templates ব্যবহার করে আপনি Spring Beans বা অন্যান্য ডাইনামিক ডেটা ব্যবহার করে স্ট্রিং তৈরি করতে পারেন। এটি Spring কনফিগারেশন ফাইল বা কোডের মধ্যে ডাইনামিক ডেটা জেনারেশন খুব সহজ করে তোলে। SpEL-এর এই ক্ষমতা অ্যাপ্লিকেশনকে আরও কাস্টমাইজযোগ্য, নমনীয় এবং কার্যকরী করে তোলে, যেখানে বিভিন্ন শর্ত বা মেথড কলের মাধ্যমে ডেটা প্রক্রিয়া করা সম্ভব হয়।
Spring Expression Language (SpEL) একটি শক্তিশালী এক্সপ্রেশন ল্যাঙ্গুয়েজ যা স্প্রিং ফ্রেমওয়ার্কের মধ্যে ব্যবহার করা হয়। SpEL বিভিন্ন ধরনের এক্সপ্রেশন সমর্থন করে, যার মধ্যে Template Expressions একটি গুরুত্বপূর্ণ ফিচার। Template Expressions ব্যবহার করে ডাইনামিক প্যারামিটার ইনজেকশন, ডাটা প্রসেসিং এবং অন্যান্য কাস্টম এক্সপ্রেশন তৈরি করা যায়।
Template Expressions SpEL এর মধ্যে বিশেষভাবে ${} সিনট্যাক্সের মাধ্যমে ইনজেকশন করা হয়। এটি সাধারণত স্প্রিং কনফিগারেশন ফাইল বা স্প্রিং বিইন ডিফিনিশনে ব্যবহৃত হয়।
Template Expressions এর ধারণা
Template Expressions এমন এক্সপ্রেশন যা স্ট্রিং হিসেবে ডাইনামিকভাবে ভ্যালু ইনজেক্ট করতে সক্ষম। এই এক্সপ্রেশনগুলো সাধারণত কনফিগারেশন ফাইল বা কোডে ব্যবহৃত হয়, যেখানে প্যারামিটার বা প্রোপার্টি ভ্যালু ইনজেকশন করা হয়।
Template Expression এর সাধারণ সিনট্যাক্স:
${expression}
এখানে, expression হলো SpEL এক্সপ্রেশন যা রানটাইমে ভ্যালু এক্সপ্রেস করবে।
1. Template Expression ব্যবহার করে স্ট্রিং প্যারামিটার ইনজেকশন
Template Expressions সাধারণত কনফিগারেশন ফাইলে স্ট্রিং প্যারামিটার বা প্রোপার্টি ইনজেকশন করতে ব্যবহৃত হয়।
উদাহরণ: স্প্রিং কনফিগারেশন ফাইলে Template Expression
<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-4.3.xsd">
<!-- Template Expression ব্যবহার করে প্রোপার্টি ইনজেকশন -->
<bean id="message" class="java.lang.String">
<constructor-arg value="${message.greeting}"/>
</bean>
</beans>
এখানে, ${message.greeting} হল একটি Template Expression, যা message.greeting প্রোপার্টি ফাইল থেকে রিফারেন্স করা হবে এবং স্ট্রিং ইনজেক্ট করা হবে।
উদাহরণ: প্রোপার্টি ফাইল সেটআপ
application.properties ফাইল:
message.greeting=Hello, Spring Expression Language!
এখন, message.greeting প্রোপার্টির ভ্যালু "Hello, Spring Expression Language!" ইনজেক্ট হবে message বীনের মধ্যে।
2. Template Expression ব্যবহার করে অবজেক্ট ইনজেকশন
SpEL Template Expressions শুধু স্ট্রিং ভ্যালুর জন্য নয়, অবজেক্ট ইনজেকশনের জন্যও ব্যবহার করা যেতে পারে।
উদাহরণ: অবজেক্ট ইনজেকশন
<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-4.3.xsd">
<!-- Calculator Bean -->
<bean id="calculator" class="com.example.Calculator"/>
<!-- Template Expression ব্যবহার করে calculator অবজেক্ট ইনজেকশন -->
<bean id="calculatorService" class="com.example.CalculatorService">
<property name="calculator" ref="${calculator}"/>
</bean>
</beans>
এখানে, ${calculator} হল Template Expression যা calculator অবজেক্টটি ইনজেক্ট করবে calculatorService বীনে।
3. Template Expressions ব্যবহার করে কনস্ট্রাক্টর-আর্গুমেন্ট ইনজেকশন
SpEL Template Expressions কনস্ট্রাক্টরের মাধ্যমে প্যারামিটার ইনজেকশন করতে ব্যবহার করা যেতে পারে।
উদাহরণ: কনস্ট্রাক্টর ইনজেকশন
<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-4.3.xsd">
<!-- Template Expression ব্যবহার করে কনস্ট্রাক্টর আর্গুমেন্ট -->
<bean id="person" class="com.example.Person">
<constructor-arg value="${person.name}"/>
<constructor-arg value="${person.age}"/>
</bean>
</beans>
এখানে, ${person.name} এবং ${person.age} Template Expressions ব্যবহার করে Person অবজেক্টে কনস্ট্রাক্টর ইনজেকশনের মাধ্যমে ভ্যালু পাস করা হচ্ছে।
উদাহরণ: প্রোপার্টি ফাইল
application.properties ফাইল:
person.name=John
person.age=25
এখন, Person অবজেক্টের কনস্ট্রাক্টরে name এবং age প্যারামিটার ইনজেক্ট হবে।
4. Template Expressions ব্যবহার করে স্প্রিং Bean Configuration
SpEL Template Expressions কনফিগারেশন ফাইলের মধ্যে ডাইনামিকভাবে ইনজেক্ট করতে সাহায্য করে, যা আপনার অ্যাপ্লিকেশনকে আরও ফ্লেক্সিবল এবং কনফিগারেবল করে তোলে।
উদাহরণ: Bean Definition এ Template Expression ব্যবহার করা
<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-4.3.xsd">
<!-- Bean Definition with Template Expression -->
<bean id="appConfig" class="com.example.AppConfig">
<property name="appName" value="${app.name}"/>
<property name="appVersion" value="${app.version}"/>
</bean>
</beans>
উদাহরণ: প্রোপার্টি ফাইল
application.properties ফাইল:
app.name=MyApp
app.version=1.0.0
এখন, AppConfig বীনের মধ্যে appName এবং appVersion প্রোপার্টি ডাইনামিকভাবে ইনজেক্ট হবে।
সারাংশ
Template Expressions SpEL (Spring Expression Language)-এর একটি শক্তিশালী ফিচার যা স্ট্রিং, অবজেক্ট বা কনস্ট্রাক্টর আর্গুমেন্ট ইনজেকশন করতে ব্যবহৃত হয়। SpEL-এর মাধ্যমে আপনি সহজেই স্প্রিং কনফিগারেশন ফাইলগুলির মধ্যে ডাইনামিক ডেটা ইনজেকশন করতে পারেন, যা স্প্রিং অ্যাপ্লিকেশনকে আরও ফ্লেক্সিবল এবং কনফিগারযোগ্য করে তোলে। Template Expressions-এর মাধ্যমে স্প্রিং কনটেক্সটে প্রোপার্টি বা অবজেক্ট ইনজেকশন করার প্রক্রিয়া খুবই সহজ এবং কার্যকরী।
Read more