Spring Expression Language (SpEL) অনেক ধরণের এক্সপ্রেশন এবং অপারেটর সাপোর্ট করে, যার মধ্যে Ternary এবং Elvis অপারেটর দুটি বিশেষ ধরনের অপারেটর। এগুলি মূলত শর্তযুক্ত এক্সপ্রেশন ব্যবহারের জন্য ব্যবহৃত হয়, যেগুলি কন্ডিশনাল লজিক সহজভাবে এবং সংক্ষিপ্তভাবে প্রকাশ করতে সাহায্য করে।
১. Ternary অপারেটর
Ternary অপারেটর একটি শর্তপূর্ণ এক্সপ্রেশন, যা if-else শাখার সংক্ষিপ্ত রূপ। এটি তিনটি অংশে বিভক্ত:
- Condition: শর্ত
- True Value: শর্তটি যদি সঠিক হয়
- False Value: শর্তটি যদি ভুল হয়
SpEL-এ Ternary অপারেটর ব্যবহার করতে হয় ? : সিনট্যাক্সের মাধ্যমে। এর মাধ্যমে আপনি একটি শর্ত পরীক্ষা করতে পারেন এবং শর্ত সঠিক হলে একটি মান বা ফলাফল প্রদান করতে পারেন, অন্যথায় অন্য একটি মান প্রদান করতে পারেন।
উদাহরণ: Ternary অপারেটর ব্যবহার
@Component
public class EmployeeService {
public String getSalaryMessage(int salary) {
return salary > 50000 ? "High Salary" : "Low Salary";
}
}
এখানে SpEL-এর মাধ্যমে salary > 50000 শর্তটি পরীক্ষা করা হয়েছে। যদি এটি সত্য হয়, তাহলে "High Salary" রিটার্ন করা হবে, অন্যথায় "Low Salary" রিটার্ন করা হবে।
SpEL এর মাধ্যমে Ternary অপারেটর ব্যবহার (XML কনফিগারেশন)
<bean id="employeeService" class="com.example.EmployeeService"/>
<bean id="salaryMessageBean" class="com.example.SalaryMessage">
<property name="message" value="#{employeeService.getSalaryMessage(60000)}"/>
</bean>
বর্ণনা:
- এখানে SpEL ব্যবহার করে
employeeService.getSalaryMessage(60000)মেথড কল করা হয়েছে, যা Ternary অপারেটরের মাধ্যমে শর্ত পরীক্ষা করে রিটার্ন ভ্যালু প্রদান করবে।
২. Elvis অপারেটর
Elvis অপারেটর (ওরফে "null-safe" Ternary অপারেটর) SpEL-এ একটি বিশেষ ধরনের অপারেটর যা null ভ্যালু চেক করার জন্য ব্যবহৃত হয়। এটি একটি সংক্ষিপ্ত পদ্ধতিতে null চেক করে এবং যদি মান null হয়, তবে একটি ডিফল্ট মান প্রদান করে।
SpEL-এ Elvis অপারেটর ব্যবহার করা হয় ?: সিনট্যাক্সের মাধ্যমে। এটি মূলত Ternary অপারেটরের মতোই কাজ করে, তবে এখানে শুধুমাত্র null মান চেক করা হয়।
উদাহরণ: Elvis অপারেটর ব্যবহার
@Component
public class EmployeeService {
public String getEmployeeName(String name) {
return name != null ? name : "Unknown";
}
}
এখানে SpEL-এর মাধ্যমে name != null ? name : "Unknown" এই এক্সপ্রেশনটি ব্যবহার করা হয়েছে। যদি name null না হয়, তবে সেই নাম রিটার্ন হবে, অন্যথায় "Unknown" রিটার্ন হবে।
SpEL এর মাধ্যমে Elvis অপারেটর ব্যবহার (XML কনফিগারেশনে)
<bean id="employeeService" class="com.example.EmployeeService"/>
<bean id="employeeNameBean" class="com.example.Employee">
<property name="employeeName" value="#{employeeService.getEmployeeName(null)}"/>
</bean>
বর্ণনা:
- এখানে SpEL ব্যবহার করে
employeeService.getEmployeeName(null)কল করা হয়েছে। কারণ নাম null, তাই"Unknown"রিটার্ন হবে।
SpEL তে Ternary এবং Elvis অপারেটরের মধ্যে পার্থক্য
| বৈশিষ্ট্য | Ternary অপারেটর | Elvis অপারেটর |
|---|---|---|
| ব্যবহার | শর্ত চেক করে দুটি মানের মধ্যে একটি রিটার্ন করতে | null মান চেক করে একটি ডিফল্ট মান রিটার্ন করতে |
| সিনট্যাক্স | condition ? valueIfTrue : valueIfFalse | value ?: defaultValue |
| সর্বোচ্চ সুবিধা | যেকোনো শর্তের ভিত্তিতে বিভিন্ন মান রিটার্ন করা যায় | শুধু null চেক এবং ডিফল্ট মান প্রদান করা যায় |
সারাংশ
SpEL (Spring Expression Language) তে Ternary অপারেটর এবং Elvis অপারেটর দুটি শক্তিশালী টুল, যা ডাইনামিক এক্সপ্রেশন ব্যবহার করতে সাহায্য করে। Ternary অপারেটর শর্তাধীন এক্সপ্রেশন ব্যবহারের জন্য উপযুক্ত, যেখানে আপনি if-else লজিক ব্যবহার করতে পারেন। অপরদিকে, Elvis অপারেটর null চেক করার জন্য একটি সহজ এবং সংক্ষিপ্ত উপায় প্রদান করে, যেখানে আপনি null থাকলে ডিফল্ট মান ব্যবহার করতে পারেন। SpEL-এ এই অপারেটরগুলি অ্যাপ্লিকেশনকে আরও কার্যকরী এবং নমনীয় করে তোলে।