Spring Expression Language (SpEL) কী?
SpEL (Spring Expression Language) হলো একটি শক্তিশালী এক্সপ্রেশন ল্যাঙ্গুয়েজ যা Spring Framework-এ ব্যবহৃত হয়। SpEL ব্যবহার করে Spring Beans এবং তাদের প্রপার্টি, মেথড, কন্ডিশনাল লজিক, এবং এমনকি regular expressions (নিয়মিত অভিব্যক্তি) ও matches অপারেটরও ব্যবহৃত হতে পারে। এই ফিচারগুলো স্প্রিং কনফিগারেশনে এবং Spring Beans এর মধ্যে ডাইনামিক এক্সপ্রেশন লেখার জন্য খুবই কার্যকরী।
এই টিউটোরিয়ালে আমরা Regular Expressions এবং Matches অপারেটর এর মাধ্যমে SpEL কিভাবে ব্যবহার করা যায় তা আলোচনা করব।
Regular Expressions in SpEL
SpEL এ regular expressions ব্যবহার করে স্ট্রিং এর প্যাটার্ন মিলানো বা স্ট্রিং যাচাই করা যায়। SpEL এ রেগুলার এক্সপ্রেশন ব্যবহার করার জন্য matches অপারেটর ব্যবহৃত হয়।
1. SpEL Regular Expression Syntax
SpEL এর মধ্যে রেগুলার এক্সপ্রেশন ব্যবহার করার সাধারণ সিনট্যাক্স:
#{string.matches('regexPattern')}
এখানে, string হলো সেই স্ট্রিং যা আপনি পরীক্ষা করতে চান এবং 'regexPattern' হলো রেগুলার এক্সপ্রেশন প্যাটার্ন।
2. Regular Expressions Example
ধরা যাক, আমাদের একটি Person ক্লাস রয়েছে এবং আমরা একটি ইমেইল ঠিকানা যাচাই করতে চাই। আমরা SpEL ব্যবহার করে এই ইমেইল ঠিকানা যাচাই করবো।
Person ক্লাস:
package com.example.model;
public class Person {
private String email;
public Person(String email) {
this.email = email;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
XML কনফিগারেশন:
<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.xsd">
<bean id="person" class="com.example.model.Person">
<constructor-arg value="john.doe@example.com"/>
</bean>
<bean id="emailValidation" class="java.lang.Boolean">
<constructor-arg value="#{person.email matches '^[A-Za-z0-9+_.-]+@(.+)$'}"/>
</bean>
</beans>
এখানে, SpEL #{person.email matches '^[A-Za-z0-9+_.-]+@(.+)$'} ব্যবহার করেছে, যা ইমেইল ঠিকানার বৈধতা যাচাই করার জন্য একটি সাধারণ রেগুলার এক্সপ্রেশন প্যাটার্ন ব্যবহার করছে।
3. Matches Example with Java Configuration
Java কনফিগারেশন ব্যবহারের মাধ্যমে SpEL এর রেগুলার এক্সপ্রেশন পরীক্ষা করা:
package com.example.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public Person person() {
return new Person("john.doe@example.com");
}
@Bean
public Boolean emailValidation() {
return person().getEmail().matches("^[A-Za-z0-9+_.-]+@(.+)$");
}
}
এখানে, person().getEmail().matches("^[A-Za-z0-9+_.-]+@(.+)$") ব্যবহার করা হয়েছে যা emailValidation() মেথডে ইমেইল ঠিকানার বৈধতা যাচাই করবে।
Matches অপারেটর
Matches অপারেটর SpEL এ রেগুলার এক্সপ্রেশন ব্যবহার করে স্ট্রিং এর প্যাটার্ন মিলিয়ে দেখতে ব্যবহৃত হয়। matches অপারেটরটি একটি স্ট্রিংকে রেগুলার এক্সপ্রেশন প্যাটার্নের সাথে তুলনা করে এবং মিল থাকলে true, নতুবা false রিটার্ন করে।
1. SpEL Matches Syntax
#{string matches 'regexPattern'}
এখানে, string হলো সেই স্ট্রিং যা আপনি যাচাই করতে চান এবং 'regexPattern' হলো রেগুলার এক্সপ্রেশন প্যাটার্ন।
2. Matches Example
ধরা যাক, আমাদের একটি User ক্লাস রয়েছে যার phoneNumber প্রপার্টি রয়েছে, এবং আমরা SpEL ব্যবহার করে এটি যাচাই করতে চাই।
User ক্লাস:
package com.example.model;
public class User {
private String phoneNumber;
public User(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
XML কনফিগারেশন:
<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.xsd">
<bean id="user" class="com.example.model.User">
<constructor-arg value="123-456-7890"/>
</bean>
<bean id="phoneValidation" class="java.lang.Boolean">
<constructor-arg value="#{user.phoneNumber matches '\\d{3}-\\d{3}-\\d{4}'}"/>
</bean>
</beans>
এখানে, SpEL #{user.phoneNumber matches '\\d{3}-\\d{3}-\\d{4}'} ব্যবহার করে ফোন নম্বরের প্যাটার্ন যাচাই করছে যা একটি সাধারণ ফোন নম্বর ফর্ম্যাট (e.g., 123-456-7890) অনুসরণ করে।
SpEL এবং Regular Expressions Summary
- Regular Expressions SpEL এর মাধ্যমে স্ট্রিংয়ের প্যাটার্ন মেলানো বা যাচাই করার জন্য ব্যবহৃত হয়।
- SpEL এ
matchesঅপারেটর ব্যবহার করে স্ট্রিং এর সাথে রেগুলার এক্সপ্রেশন মিলিয়ে দেখা যায়। - রেগুলার এক্সপ্রেশন ব্যবহার করা SpEL এর মাধ্যমে ডাইনামিক স্ট্রিং যাচাই, ভ্যালিডেশন, এবং কন্ডিশনাল লজিক তৈরি করার একটি শক্তিশালী উপায়।
SpEL-এর Regular Expressions এবং Matches অপারেটর আপনাকে Spring Beans বা কনফিগারেশন ফাইলে ডাইনামিক স্ট্রিং যাচাই করার জন্য একটি শক্তিশালী টুল সরবরাহ করে।