Bean এর Static Methods কে SpEL এ কল করা

Custom Functions SpEL এর মাধ্যমে - স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (Spring Expression Language) - Java Technologies

339

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): এর মাধ্যমে multiply static 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 ব্যবহার করে ডাইনামিক ফাংশনালিটি যোগ করার ক্ষমতা প্রদান করে, এবং স্ট্যাটিক ক্লাস মেথডে অ্যাক্সেস করে আপনার অ্যাপ্লিকেশনকে আরও নমনীয় এবং শক্তিশালী করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...