SpEL এর ধারণা
Spring Expression Language (SpEL) একটি শক্তিশালী এক্সপ্রেশন ল্যাঙ্গুয়েজ যা Spring Framework-এ ব্যবহৃত হয়। এটি Spring Bean কনফিগারেশন, স্প্রিং অ্যাপ্লিকেশনের মধ্যে ডাইনামিক এক্সপ্রেশন মূল্যায়ন এবং অন্যান্য কাজের জন্য ব্যবহৃত হয়। SpEL এর মাধ্যমে, ডেভেলপাররা জাভা অবজেক্টের প্রপার্টি, মেথড কল, কন্ডিশনাল স্টেটমেন্ট এবং আরও অনেক কিছু এক্সপ্রেশন আকারে ব্যবহার করতে পারে।
SpEL বিভিন্ন ব্যবহারিক ক্ষেত্রে প্রয়োগ করা যায়, যেমন Spring Bean কনফিগারেশন, কন্ডিশনাল লজিক, এবং অ্যানোটেশন ভিত্তিক কনফিগারেশন।
SpEL এর মৌলিক সিনট্যাক্স
SpEL সাধারণত স্প্রিং কনফিগারেশন ফাইলের মধ্যে ${} চিহ্নের মধ্যে ব্যবহৃত হয়। এটি ব্যবহার করে ডাইনামিক এক্সপ্রেশন সন্নিবেশ করা হয়, যা runtime এ মূল্যায়িত হয়।
মৌলিক সিনট্যাক্স উদাহরণ:
<bean id="message" class="java.lang.String">
<constructor-arg value="#{'Hello ' + 'World'}"/>
</bean>
এখানে, SpEL এক্সপ্রেশন #{'Hello ' + 'World'} ব্যবহৃত হয়েছে।
প্রথম SpEL প্রোগ্রাম
SpEL ব্যবহার করার জন্য সাধারণত ExpressionParser এবং Expression ক্লাস ব্যবহার করা হয়।
উদাহরণ: SpEL প্রোগ্রাম
এখানে একটি সরল SpEL প্রোগ্রামের উদাহরণ দেওয়া হল যেখানে SpEL এর মাধ্যমে স্ট্রিং কনক্যাটেনেশন (concatenation) করা হবে এবং একটি গণনা করা হবে।
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
public class SpELExample {
public static void main(String[] args) {
// SpEL এক্সপ্রেশন পার্সার তৈরি
ExpressionParser parser = new SpelExpressionParser();
// Context তৈরি (যেখানে এক্সপ্রেশন কনটেক্সট থাকবে)
StandardEvaluationContext context = new StandardEvaluationContext();
// SpEL এক্সপ্রেশন ব্যবহার করে স্ট্রিং কনক্যাটেনেশন
String result = parser.parseExpression("'Hello ' + 'World'").getValue(context, String.class);
System.out.println(result); // আউটপুট: Hello World
// SpEL এক্সপ্রেশন ব্যবহার করে একটি গাণিতিক গণনা
int sum = parser.parseExpression("10 + 20").getValue(context, Integer.class);
System.out.println("Sum: " + sum); // আউটপুট: Sum: 30
}
}
কোডের ব্যাখ্যা:
- ExpressionParser: SpEL এক্সপ্রেশন পার্স করতে এটি ব্যবহৃত হয়। এখানে
SpelExpressionParserব্যবহার করা হয়েছে। - StandardEvaluationContext: এটি SpEL এক্সপ্রেশনকে মূল্যায়ন করার জন্য ব্যবহৃত হয় এবং context তৈরি করে।
- parseExpression(): এই মেথডটি SpEL এক্সপ্রেশন পার্স করে, এবং
getValue()মেথডের মাধ্যমে এক্সপ্রেশন এর ফলাফল পাওয়া যায়।
এই উদাহরণে, দুটি SpEL এক্সপ্রেশন পার্স করা হয়েছে:
- একটি স্ট্রিং কনক্যাটেনেশন (
'Hello ' + 'World'), যার আউটপুট হবে `"Hello World"। - একটি গাণিতিক গণনা (
10 + 20), যার আউটপুট হবে30।
SpEL এর অন্যান্য বৈশিষ্ট্য
কন্ডিশনাল এক্সপ্রেশন: SpEL ব্যবহার করে কন্ডিশনাল স্টেটমেন্টও ব্যবহার করা যায়, যেমন
ifবাternaryঅপারেটর।String result = parser.parseExpression("10 > 5 ? 'Greater' : 'Lesser'").getValue(context, String.class);বিন্যস্ত প্রপার্টি এক্সপ্রেশন: SpEL এর মাধ্যমে অবজেক্টের প্রপার্টি অ্যাক্সেসও করা যায়।
class Person { private String name; public String getName() { return name; } } // SpEL দিয়ে Person অবজেক্টের নাম প্রপার্টি অ্যাক্সেস String name = parser.parseExpression("person.name").getValue(context, String.class);মেথড কল: SpEL দিয়ে অবজেক্টের মেথড কল করা যায়।
String result = parser.parseExpression("'Hello'.concat(' World')").getValue(context, String.class);
সারাংশ
Spring Expression Language (SpEL) Spring Framework-এ একটি শক্তিশালী টুল যা ডাইনামিক এক্সপ্রেশন ব্যবহার করতে সাহায্য করে। এটি Spring Bean কনফিগারেশন, কন্ডিশনাল লজিক এবং অন্যান্য কাজের জন্য ব্যবহৃত হয়। SpEL ব্যবহার করে বিভিন্ন এক্সপ্রেশন যেমন গাণিতিক গণনা, স্ট্রিং কনক্যাটেনেশন, মেথড কল ইত্যাদি খুব সহজে করা যায়। উপরের উদাহরণে SpEL-এর মাধ্যমে স্ট্রিং কনক্যাটেনেশন এবং গাণিতিক গণনা দেখানো হয়েছে।
Read more