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-এর মাধ্যমে স্প্রিং কনটেক্সটে প্রোপার্টি বা অবজেক্ট ইনজেকশন করার প্রক্রিয়া খুবই সহজ এবং কার্যকরী।