Spring Expression Language (SpEL) একটি শক্তিশালী এক্সপ্রেশন ল্যাঙ্গুয়েজ যা ডাইনামিক এক্সপ্রেশন, কন্ডিশনাল লজিক, এবং বিভিন্ন ধরণের অপারেশন বাস্তবায়ন করতে ব্যবহৃত হয়। SpEL এর মাধ্যমে Regular Expressions (RegEx) এবং Matches অপারেটর ব্যবহার করে স্ট্রিং প্যাটার্ন ম্যাচিং করা যায়, যা খুবই উপকারী যখন স্ট্রিং ভ্যালুর ভিতরে নির্দিষ্ট প্যাটার্ন খুঁজতে হয়।
Regular Expressions এবং Matches অপারেটর
Regular Expressions (RegEx)
Regular Expressions (RegEx) একটি প্যাটার্ন-বেসড ল্যাঙ্গুয়েজ যা স্ট্রিংয়ের মধ্যে বিশেষ প্যাটার্ন খুঁজতে ব্যবহৃত হয়। SpEL এ আপনি RegEx ব্যবহার করে স্ট্রিংয়ের মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করতে পারেন, যেমন একটি স্ট্রিংয়ের মধ্যে কোনও ইমেইল ঠিকানা, ফোন নম্বর, বা নির্দিষ্ট শব্দ খুঁজে বের করা।
SpEL এ matches অপারেটর ব্যবহার করে স্ট্রিংয়ের সাথে একটি RegEx প্যাটার্ন ম্যাচ করা হয়।
SpEL এ Regular Expressions এবং Matches অপারেটর ব্যবহার
1. Basic Syntax of matches Operator
SpEL এ matches অপারেটর ব্যবহার করে আমরা একটি স্ট্রিং এবং তার সাথে একটি RegEx প্যাটার্ন ম্যাচ করতে পারি। সাধারণ সিনট্যাক্স:
string matches 'regex-pattern'
এখানে, string হলো সেই স্ট্রিং যেটি আমরা পরীক্ষা করতে চাই এবং 'regex-pattern' হলো RegEx প্যাটার্ন যা আমরা যাচাই করতে চাই।
2. RegEx Matching Example
ধরা যাক আমাদের একটি স্ট্রিং রয়েছে এবং আমরা দেখতে চাই, ওই স্ট্রিংটি একটি নির্দিষ্ট প্যাটার্নের সাথে মিলে কিনা। যেমন, একটি ইমেইল ঠিকানা যাচাই করা।
উদাহরণ: স্ট্রিংয়ের মধ্যে ইমেইল প্যাটার্ন ম্যাচ করা
public class SpELRegexExample {
public static void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
// স্ট্রিং সেট করা
String email = "example@domain.com";
context.setVariable("email", email);
// ইমেইল প্যাটার্ন যাচাই করা
String expression = "#email matches '^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$'";
boolean result = parser.parseExpression(expression).getValue(context, Boolean.class);
// আউটপুট প্রিন্ট করা
System.out.println("Is valid email? " + result); // আউটপুট: true
}
}
এখানে, আমরা #email স্ট্রিংয়ের সাথে একটি ইমেইল প্যাটার্ন ম্যাচ করছি এবং ফলস্বরূপ যাচাই করা হচ্ছে যে এটি একটি বৈধ ইমেইল ঠিকানা কিনা।
3. More Examples of Regular Expressions in SpEL
উদাহরণ 1: মোবাইল নম্বর যাচাই করা
public class SpELRegexExample {
public static void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
// মোবাইল নম্বর
String phoneNumber = "+8801712345678";
context.setVariable("phoneNumber", phoneNumber);
// মোবাইল নম্বরের প্যাটার্ন যাচাই করা
String expression = "#phoneNumber matches '^\\+8801[3-9][0-9]{8}$'";
boolean result = parser.parseExpression(expression).getValue(context, Boolean.class);
// আউটপুট প্রিন্ট করা
System.out.println("Is valid phone number? " + result); // আউটপুট: true
}
}
এখানে, আমরা #phoneNumber স্ট্রিংয়ের সাথে একটি মোবাইল নম্বর প্যাটার্ন ম্যাচ করছি, যা বাংলাদেশের মোবাইল নম্বরের ফরম্যাট অনুসরণ করবে।
উদাহরণ 2: একটি সাধারণ স্ট্রিং প্যাটার্ন যাচাই করা
public class SpELRegexExample {
public static void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
// একটি স্ট্রিং
String text = "Hello World!";
context.setVariable("text", text);
// স্ট্রিংয়ের মধ্যে 'Hello' শব্দটি আছে কিনা যাচাই করা
String expression = "#text matches '.*Hello.*'";
boolean result = parser.parseExpression(expression).getValue(context, Boolean.class);
// আউটপুট প্রিন্ট করা
System.out.println("Contains 'Hello'? " + result); // আউটপুট: true
}
}
এখানে, #text স্ট্রিংয়ের মধ্যে "Hello" শব্দটি খুঁজে বের করা হয়েছে এবং যাচাই করা হয়েছে যে এটি উপস্থিত কিনা।
4. matches অপারেটর ব্যবহার করে আরও কিছু কাস্টম প্যাটার্ন
SpEL এ matches অপারেটর দিয়ে অনেক ধরনের জটিল প্যাটার্ন ম্যাচ করা যেতে পারে:
URL validation:
String expression = "#url matches '^(https?|ftp)://[^\s/$.?#].[^\s]*$'";Numeric validation (positive integer):
String expression = "#number matches '^[0-9]+$'";Date validation (simple date format:
yyyy-MM-dd):String expression = "#date matches '^\\d{4}-\\d{2}-\\d{2}$'";
সারাংশ
SpEL (Spring Expression Language) এর matches অপারেটর এবং Regular Expressions স্ট্রিং প্যাটার্ন ম্যাচিংয়ের জন্য অত্যন্ত শক্তিশালী টুল। SpEL এ matches অপারেটর ব্যবহার করে আপনি যেকোনো স্ট্রিংয়ের সাথে RegEx প্যাটার্ন ম্যাচ করতে পারেন। এটি ডেটা ভ্যালিডেশন, স্ট্রিং প্রোসেসিং, এবং কন্ডিশনাল লজিক বাস্তবায়ন করতে সহায়ক। SpEL-এর মাধ্যমে সহজেই ইমেইল, মোবাইল নম্বর, URL, এবং অন্যান্য স্ট্রিং প্যাটার্ন যাচাই করা সম্ভব, যা স্প্রিং অ্যাপ্লিকেশনকে আরও ডাইনামিক এবং শক্তিশালী করে তোলে।
Spring Expression Language (SpEL), Spring Framework-এর একটি শক্তিশালী ভাষা, যা আপনাকে Spring Beans-এর প্রপার্টি এবং মেথডের সাথে এক্সপ্রেশন লেখার সুযোগ দেয়। SpEL-এ Regular Expressions (RegEx) ব্যবহার করে স্ট্রিংগুলির সাথে উন্নত প্যাটার্ন ম্যাচিং এবং ম্যানিপুলেশন করা যায়। SpEL-এর মাধ্যমে আপনি স্ট্রিং-ভিত্তিক ডেটার উপর regex-এ কাজ করতে পারবেন যা আপনাকে উন্নত ফিল্টারিং, ভ্যালিডেশন, বা টেক্সট প্রসেসিং করতে সহায়ক।
SpEL Regular Expressions-এর সাথে কাজ করার জন্য SpEL এর মধ্যে কিছু বিশেষ ফাংশন এবং পদ্ধতি রয়েছে, যেমন matches(), replaceAll(), ইত্যাদি। এই পদ্ধতিগুলো স্ট্রিং এবং প্যাটার্নের মধ্যে মেলানো বা প্রতিস্থাপন করতে ব্যবহৃত হয়।
SpEL এ Regular Expressions এর ব্যবহার
১. matches() ফাংশন
SpEL এ matches() ফাংশন ব্যবহার করে আপনি একটি স্ট্রিং প্যাটার্নের সাথে ম্যাচ করাতে পারেন। এটি স্ট্রিং এবং RegEx প্যাটার্নের মধ্যে ম্যাচিং চেক করে। যদি স্ট্রিংটি প্যাটার্নের সাথে মেলে, তবে এটি true রিটার্ন করবে, অন্যথায় false।
উদাহরণ:
@Configuration
public class AppConfig {
@Bean
public String regexMatchExample() {
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
// Regular Expression to match an email pattern
String emailPattern = "^[A-Za-z0-9+_.-]+@(.+)$";
// Checking if the string matches the pattern
Boolean isValid = (Boolean) parser.parseExpression("'test@example.com'.matches('" + emailPattern + "')").getValue(context);
return "Is valid email? " + isValid;
}
}
এখানে, SpEL ব্যবহার করে একটি ইমেল ঠিকানার প্যাটার্ন চেক করা হয়েছে। matches() মেথডের মাধ্যমে এটি যাচাই করে, যদি স্ট্রিংটি ইমেল প্যাটার্নের সাথে মেলে, তবে true রিটার্ন করবে।
২. replaceAll() ফাংশন
SpEL এ replaceAll() ফাংশন ব্যবহার করে আপনি একটি স্ট্রিং-এর নির্দিষ্ট অংশকে একটি নতুন স্ট্রিং দ্বারা প্রতিস্থাপন করতে পারেন, যেখানে আপনি একটি RegEx প্যাটার্ন ব্যবহার করতে পারেন।
উদাহরণ:
@Configuration
public class AppConfig {
@Bean
public String regexReplaceExample() {
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
// Replacing all digits with a character
String result = (String) parser.parseExpression("'123ABC456'.replaceAll('[0-9]', '#')").getValue(context);
return "Replaced String: " + result;
}
}
এই উদাহরণে, replaceAll() ব্যবহার করে, সব ডিজিটগুলিকে # দ্বারা প্রতিস্থাপন করা হয়েছে। স্ট্রিং '123ABC456' এর মধ্যে সব সংখ্যাকে # দ্বারা প্রতিস্থাপন করবে, ফলে আউটপুট হবে: "###ABC###"।
৩. find() ফাংশন
SpEL এর find() ফাংশন ব্যবহার করে একটি স্ট্রিং এর মধ্যে নির্দিষ্ট প্যাটার্ন খুঁজে বের করা যায়। এটি RegEx প্যাটার্নের সঙ্গে স্ট্রিং মেলাতে সাহায্য করে এবং প্রথম ম্যাচের অবস্থান রিটার্ন করে।
উদাহরণ:
@Configuration
public class AppConfig {
@Bean
public String regexFindExample() {
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
// Finding the position of first occurrence of a number
Integer position = (Integer) parser.parseExpression("'The price is 100 dollars'.find('\\d+')").getValue(context);
return "Position of first number: " + position;
}
}
এখানে, find() ব্যবহার করে স্ট্রিং 'The price is 100 dollars'-এ প্রথম সংখ্যা (100) খুঁজে বের করা হয়েছে, এবং তার অবস্থান রিটার্ন করা হয়েছে।
SpEL Regular Expressions এর সুবিধা
- স্ট্রিং ভ্যালিডেশন: আপনি সহজেই স্ট্রিং ভ্যালিডেশন করতে পারবেন যেমন ইমেল ঠিকানা, ফোন নম্বর বা অন্যান্য প্যাটার্ন যাচাই করা।
- ডেটা ক্লিনিং এবং প্রসেসিং: ডেটার মধ্যে বিশেষ ধরনের প্যাটার্ন খুঁজে বের করতে এবং সেগুলিকে প্রতিস্থাপন করতে সহায়ক।
- ফিল্টারিং এবং ম্যাচিং: স্পেসিফিক প্যাটার্নের সাথে স্ট্রিং মেলাতে এবং সংশ্লিষ্ট তথ্য বের করতে ব্যবহৃত হয়।
সারাংশ
Spring Expression Language (SpEL) ব্যবহার করে আপনি সহজেই RegEx প্যাটার্নগুলির সাথে কাজ করতে পারেন, যেমন স্ট্রিং ম্যাচিং, প্রতিস্থাপন, এবং খোঁজা। SpEL-এর matches(), replaceAll(), এবং find() ফাংশনগুলি আপনাকে স্ট্রিংগুলির মধ্যে RegEx প্যাটার্ন খুঁজে বের করতে এবং প্রক্রিয়া করতে সহায়তা করে। এটি ডাইনামিক কোডে টেক্সট ম্যানিপুলেশন এবং ভ্যালিডেশন সহজ করে তোলে, বিশেষ করে Spring Beans-এর মধ্যে বিভিন্ন ধরণের লজিক প্রয়োগ করতে।
Spring Expression Language (SpEL) হল একটি শক্তিশালী এক্সপ্রেশন ভাষা যা স্প্রিং কনফিগারেশন এবং কোডে ডাইনামিক এক্সপ্রেশন এবং লজিক ব্যবহার করতে সাহায্য করে। SpEL-এর matches অপারেটরটি দিয়ে আপনি স্ট্রিংগুলোর সাথে প্যাটার্ন ম্যাচ করতে পারেন। এটি Regular Expressions (Regex) ব্যবহার করে স্ট্রিংয়ের প্যাটার্ন যাচাই করতে সহায়ক।
matches অপারেটর:
matchesঅপারেটরটি একটি স্ট্রিংকে একটি রেগুলার এক্সপ্রেশনের সাথে তুলনা করে এবং যদি স্ট্রিংটি প্যাটার্নের সাথে মিলে যায়, তবে এটিtrueরিটার্ন করে, অন্যথায়falseরিটার্ন করে।- এটি স্প্রিং কনফিগারেশন বা কোডে ডাইনামিক ভ্যালু যাচাই করার জন্য ব্যবহার করা হয়।
Maven বা Gradle কনফিগারেশন
Maven কনফিগারেশন:
SpEL এবং স্প্রিং কনটেক্সট ব্যবহার করতে Maven প্রজেক্টে নিচের ডিপেনডেন্সি যোগ করুন:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.3.12</version>
</dependency>
</dependencies>
Gradle কনফিগারেশন:
dependencies {
implementation 'org.springframework:spring-context:5.3.12'
implementation 'org.springframework:spring-expression:5.3.12'
}
matches অপারেটর দিয়ে স্ট্রিং যাচাই করা
স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (SpEL) ব্যবহার করে matches অপারেটর দিয়ে স্ট্রিং প্যাটার্ন যাচাই করার জন্য একটি সহজ উদাহরণ দেখানো হবে। উদাহরণস্বরূপ, আমরা একটি স্ট্রিং যাচাই করব যা একটি ইমেইল অ্যাড্রেসের ফরম্যাটের সাথে মেলে কিনা।
Step 1: SpEL matches অপারেটর ব্যবহার
<bean id="emailValidator" class="java.lang.String">
<constructor-arg value="#{'test@example.com'.matches('[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-zA-Z]{2,3}')}"/>
</bean>
এখানে, #{'test@example.com'.matches('[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-zA-Z]{2,3}')} এক্সপ্রেশনটি matches অপারেটর ব্যবহার করে ইমেইল অ্যাড্রেসটি যাচাই করছে যে এটি একটি বৈধ ইমেইল ফরম্যাটে আছে কিনা।
Step 2: SpEL matches অপারেটর দিয়ে স্ট্রিং যাচাই (Java কোডে)
Java কোডে SpEL দিয়ে matches অপারেটর ব্যবহার করে স্ট্রিং প্যাটার্ন যাচাই করতে হবে। এখানে, আমরা একটি ইমেইল যাচাই করব।
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
public class SpELMatchesExample {
public static void main(String[] args) {
// ExpressionParser তৈরি করা
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
// SpEL এক্সপ্রেশন
String email = "test@example.com";
boolean isValidEmail = parser.parseExpression("#email.matches('[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-zA-Z]{2,3}')").getValue(context, Boolean.class);
System.out.println("Is valid email: " + isValidEmail); // Output: true
}
}
এখানে, SpEL এক্সপ্রেশন #email.matches('[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-zA-Z]{2,3}') ব্যবহার করে যাচাই করা হচ্ছে যে "test@example.com" একটি বৈধ ইমেইল অ্যাড্রেস কিনা।
Matches অপারেটর দিয়ে অন্যান্য প্যাটার্ন যাচাই
SpEL এর matches অপারেটর দিয়ে আরও বিভিন্ন প্যাটার্ন যাচাই করা যায়, যেমন নামের ফরম্যাট, ফোন নাম্বারের ফরম্যাট ইত্যাদি। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি ফোন নাম্বার যাচাই করা হচ্ছে:
Step 3: SpEL দিয়ে ফোন নাম্বার যাচাই
public class SpELPhoneNumberExample {
public static void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext();
// SpEL এক্সপ্রেশন
String phoneNumber = "123-456-7890";
boolean isValidPhone = parser.parseExpression("#phoneNumber.matches('\\d{3}-\\d{3}-\\d{4}')").getValue(context, Boolean.class);
System.out.println("Is valid phone number: " + isValidPhone); // Output: true
}
}
এখানে, SpEL এক্সপ্রেশন #phoneNumber.matches('\\d{3}-\\d{3}-\\d{4}') ব্যবহার করে "123-456-7890" ফোন নাম্বারটি যাচাই করা হচ্ছে যে এটি সঠিক ফরম্যাটে আছে কিনা।
matches অপারেটরের সুবিধা
- ডাইনামিক প্যাটার্ন যাচাই: SpEL ব্যবহার করে আপনি ডাইনামিকভাবে যেকোনো স্ট্রিং প্যাটার্ন যাচাই করতে পারেন, যা runtime এর সময়ে প্রয়োজনীয় প্যাটার্ন দিয়ে এক্সপ্রেশন তৈরি করতে সাহায্য করে।
- স্ট্রিং বৈধতা যাচাই: SpEL এর
matchesঅপারেটর দিয়ে আপনি সহজেই ইমেইল, ফোন নাম্বার, নাম ইত্যাদির ফরম্যাট যাচাই করতে পারবেন। - Regular Expressions: SpEL এর মাধ্যমে আপনি প্রথাগত রেগুলার এক্সপ্রেশনের সুবিধা পেয়ে যাচাই করতে পারবেন, যা খুবই শক্তিশালী ও নমনীয়।
সারাংশ
Spring Expression Language (SpEL) এর matches অপারেটর দিয়ে আপনি সহজেই স্ট্রিং প্যাটার্ন যাচাই করতে পারেন। এটি রেগুলার এক্সপ্রেশন (Regex) ব্যবহার করে স্ট্রিংয়ের ফরম্যাট যাচাই করার একটি কার্যকর উপায়। SpEL এর matches অপারেটরটি স্প্রিং কনফিগারেশন এবং Java কোডে ডাইনামিক স্ট্রিং যাচাই করার জন্য খুবই কার্যকর।
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 বা কনফিগারেশন ফাইলে ডাইনামিক স্ট্রিং যাচাই করার জন্য একটি শক্তিশালী টুল সরবরাহ করে।
Read more