Spring Expression Language (SpEL) এর মাধ্যমে আপনি Spring Beans-এর static methods কে অ্যাক্সেস এবং কল করতে পারেন। SpEL এর মাধ্যমে static methods কল করার জন্য T(className) সিনট্যাক্স ব্যবহার করা হয়। এই সিনট্যাক্স ব্যবহার করে আপনি একটি ক্লাসের static methods অ্যাক্সেস করতে পারবেন, যেখানে T চিহ্ন ক্লাস রেফারেন্সের জন্য ব্যবহৃত হয়।
Static Method কল করা SpEL এর মাধ্যমে
1. Static Method Calling Syntax
SpEL-এ static method কল করতে আপনাকে T(className) ব্যবহার করতে হবে এবং তারপর method নাম এবং আর্গুমেন্টগুলি দিতে হবে।
Syntax:
T(com.example.ClassName).methodName(arguments)
এখানে T(com.example.ClassName) হলো static ক্লাস রেফারেন্স, এবং তারপর .methodName(arguments) দ্বারা static method কল করা হয়।
উদাহরণ:
ধরা যাক, আমাদের একটি MathUtils ক্লাস আছে যেখানে একটি static multiply method রয়েছে যা দুটি সংখ্যা গুণ করে।
1. MathUtils ক্লাস
public class MathUtils {
public static int multiply(int a, int b) {
return a * b;
}
}
2. Spring XML কনফিগারেশন
Spring কনফিগারেশনে আমরা এই ক্লাসের static method কল করার জন্য SpEL ব্যবহার করব।
<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="mathUtils" class="com.example.MathUtils"/>
</beans>
3. Static Method SpEL থেকে কল করা
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
public class SpELStaticMethodExample {
public static void main(String[] args) {
// Spring context load from XML configuration
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// SpEL expression parser
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
// No need to register static class as a bean, directly use T() to call static method
// Calling static method 'multiply' from MathUtils class
int result = parser.parseExpression("T(com.example.MathUtils).multiply(10, 5)").getValue(evaluationContext, Integer.class);
System.out.println("Multiplication result: " + result); // Output: Multiplication result: 50
}
}
SpEL ব্যাখ্যা:
T(com.example.MathUtils): এই অংশে আমরা MathUtils ক্লাসটিকে SpEL এর মধ্যে রেফারেন্স করেছি।.multiply(10, 5): এর মাধ্যমেmultiplystatic method কল করা হয়েছে এবং দুইটি আর্গুমেন্ট (10, 5) প্রদান করা হয়েছে।
Static Methods with Other Data Types
SpEL এর মাধ্যমে static methods কল করার সময় আপনি বিভিন্ন ডেটা টাইপের আর্গুমেন্ট পাঠাতে পারেন এবং সেই অনুযায়ী রিটার্ন ভ্যালু ব্যবহার করতে পারেন।
উদাহরণ:
ধরা যাক আমাদের StringUtils ক্লাসে একটি static method আছে reverseString যা একটি স্ট্রিং রিভার্স করে।
public class StringUtils {
public static String reverseString(String input) {
StringBuilder sb = new StringBuilder(input);
return sb.reverse().toString();
}
}
SpEL কোড:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
public class SpELStaticMethodStringExample {
public static void main(String[] args) {
// Spring context load from XML configuration
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// SpEL expression parser
ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
// Calling static method 'reverseString' from StringUtils class
String reversedString = parser.parseExpression("T(com.example.StringUtils).reverseString('Spring')").getValue(evaluationContext, String.class);
System.out.println("Reversed String: " + reversedString); // Output: gnirpS
}
}
সারাংশ
SpEL (Spring Expression Language) এর মাধ্যমে Spring Beans-এর static methods কল করা খুবই সহজ। T(className) সিনট্যাক্স ব্যবহার করে আপনি static methods এর সাথে কাজ করতে পারেন। এটি আপনাকে Spring Beans-এর সাথে SpEL ব্যবহার করে ডাইনামিক ফাংশনালিটি যোগ করার ক্ষমতা প্রদান করে, এবং স্ট্যাটিক ক্লাস মেথডে অ্যাক্সেস করে আপনার অ্যাপ্লিকেশনকে আরও নমনীয় এবং শক্তিশালী করে তোলে।