Method Invocation এর ধারণা

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

318

Spring Expression Language (SpEL) একটি শক্তিশালী এক্সপ্রেশন ল্যাঙ্গুয়েজ যা স্প্রিং ফ্রেমওয়ার্কের মধ্যে ব্যবহৃত হয়। এটি ডাইনামিক এক্সপ্রেশন এবং কন্ডিশনাল লজিক প্রক্রিয়া করতে ব্যবহৃত হয়। Method Invocation হলো SpEL এর একটি গুরুত্বপূর্ণ ফিচার, যা স্প্রিং কনটেক্সটে মেথড কল করার জন্য ব্যবহৃত হয়।

Method Invocation এর মাধ্যমে SpEL কনটেক্সটে আপনার Java ক্লাসের মেথড কল করা যেতে পারে, যার ফলে ডাইনামিকভাবে অবজেক্টের মেথড এক্সিকিউট করা সম্ভব হয়। এটি অ্যাপ্লিকেশন ডিজাইনকে আরও ফ্লেক্সিবল এবং ডাইনামিক করে তোলে।


Method Invocation এর ধারণা

SpEL এ মেথড ইনভোকেশন খুবই সরল এবং শক্তিশালী। আপনি স্প্রিং কনটেক্সট থেকে অবজেক্টের মেথড ডাইনামিকভাবে কল করতে পারেন এবং সেই মেথডের আউটপুট ব্যবহার করতে পারেন। SpEL তে Method Invocation করতে আপনাকে object.method() সিনট্যাক্স অনুসরণ করতে হয়।

1. Basic Method Invocation

SpEL এ মেথড কল করার জন্য আপনাকে প্রথমে একটি অবজেক্টের রেফারেন্স দিতে হবে এবং তারপরে . চিহ্ন ব্যবহার করে মেথড কল করতে হবে।

উদাহরণ: সাধারণ মেথড কল

public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String greet() {
        return "Hello, " + name;
    }
}

এখন, SpEL এক্সপ্রেশন ব্যবহার করে greet() মেথড কল করা যাক:

import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class SpELMethodInvocationExample {
    public static void main(String[] args) {
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();

        // Person অবজেক্ট তৈরি এবং কনটেক্সটে সেট করা
        Person person = new Person("John");
        context.setVariable("person", person);

        // greet() মেথড কল করা
        String expression = "#person.greet()";
        String result = parser.parseExpression(expression).getValue(context, String.class);

        // আউটপুট প্রিন্ট করা
        System.out.println(result);  // আউটপুট: Hello, John
    }
}

এখানে, #person.greet() এক্সপ্রেশন ব্যবহার করে Person অবজেক্টের greet() মেথড কল করা হয়েছে।


2. Method Invocation with Arguments

SpEL এর মাধ্যমে আপনি মেথডে আর্গুমেন্টও পাস করতে পারেন। এটি এমন সময় ব্যবহৃত হয় যখন মেথড কল করার সময় কিছু ভ্যালু পাস করা প্রয়োজন।

উদাহরণ: মেথডে আর্গুমেন্ট পাস করা

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

এখন, SpEL এক্সপ্রেশন ব্যবহার করে add() মেথড কল করা যাক:

public class SpELMethodInvocationWithArgumentsExample {
    public static void main(String[] args) {
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();

        // Calculator অবজেক্ট তৈরি এবং কনটেক্সটে সেট করা
        Calculator calculator = new Calculator();
        context.setVariable("calculator", calculator);

        // add() মেথড কল করা আর্গুমেন্ট সহ
        String expression = "#calculator.add(5, 3)";
        int result = parser.parseExpression(expression).getValue(context, Integer.class);

        // আউটপুট প্রিন্ট করা
        System.out.println(result);  // আউটপুট: 8
    }
}

এখানে, #calculator.add(5, 3) এক্সপ্রেশন দিয়ে add() মেথডে দুটি আর্গুমেন্ট (5 এবং 3) পাস করা হয়েছে এবং ফলাফল হিসেবে 8 প্রাপ্ত হয়েছে।


3. Method Invocation on Static Methods

SpEL শুধুমাত্র ইনস্ট্যান্স মেথড নয়, স্ট্যাটিক মেথডও কল করতে পারে। স্প্রিং কনটেক্সটে আপনি স্ট্যাটিক মেথডের নাম দিয়ে এক্সপ্রেশন লিখে মেথড কল করতে পারবেন।

উদাহরণ: স্ট্যাটিক মেথড কল করা

public class MathUtil {
    public static int multiply(int a, int b) {
        return a * b;
    }
}

এখন, SpEL দিয়ে multiply() স্ট্যাটিক মেথড কল করা যাক:

public class SpELStaticMethodInvocationExample {
    public static void main(String[] args) {
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();

        // Static method কল করা
        String expression = "T(com.example.MathUtil).multiply(4, 6)";
        int result = parser.parseExpression(expression).getValue(context, Integer.class);

        // আউটপুট প্রিন্ট করা
        System.out.println(result);  // আউটপুট: 24
    }
}

এখানে, T(com.example.MathUtil).multiply(4, 6) এক্সপ্রেশন ব্যবহার করে MathUtil ক্লাসের স্ট্যাটিক multiply() মেথড কল করা হয়েছে।


4. Method Invocation on Collections

SpEL এর মাধ্যমে আপনি কালেকশন অবজেক্টের মেথডও কল করতে পারেন। উদাহরণস্বরূপ, আপনি একটি List অবজেক্টের size() মেথড কল করতে পারেন।

উদাহরণ: কালেকশন অবজেক্টে মেথড কল

import java.util.Arrays;
import java.util.List;

public class SpELCollectionMethodExample {
    public static void main(String[] args) {
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();

        // List অবজেক্ট তৈরি এবং কনটেক্সটে সেট করা
        List<String> list = Arrays.asList("apple", "banana", "cherry");
        context.setVariable("list", list);

        // size() মেথড কল করা
        String expression = "#list.size()";
        int result = parser.parseExpression(expression).getValue(context, Integer.class);

        // আউটপুট প্রিন্ট করা
        System.out.println(result);  // আউটপুট: 3
    }
}

এখানে, #list.size() এক্সপ্রেশন ব্যবহার করে List অবজেক্টের size() মেথড কল করা হয়েছে এবং 3 ফলাফল পাওয়া গেছে।


সারাংশ

SpEL (Spring Expression Language) তে Method Invocation একটি গুরুত্বপূর্ণ ফিচার যা অবজেক্টের মেথড কল করতে ব্যবহৃত হয়। SpEL এর মাধ্যমে আপনি অবজেক্টের মেথড, আর্গুমেন্ট সহ মেথড, স্ট্যাটিক মেথড এবং কালেকশন মেথডও কল করতে পারেন। এটি আপনার অ্যাপ্লিকেশনকে ডাইনামিক এবং ফ্লেক্সিবল করতে সাহায্য করে। SpEL এর মাধ্যমে মেথড কল করা আরও সহজ, দ্রুত এবং কার্যকর হতে পারে, যা অ্যাপ্লিকেশনের পারফর্মেন্স এবং রিডেবিলিটি বাড়ায়।

Content added By
Promotion

Are you sure to start over?

Loading...