Skill

স্পেল এর মাধ্যমে মেথড কলিং

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

280

Spring Expression Language (SpEL) শুধুমাত্র ভ্যালু এক্সপ্রেশন বা গাণিতিক অপারেশন হিসেবেই ব্যবহৃত হয় না, এটি মেথড কলিং এর জন্যও ব্যবহৃত হতে পারে। SpEL এর মাধ্যমে আপনি Spring Beans বা সাধারণ Java অবজেক্টের মেথডকে রানটাইমে কল করতে পারেন, এবং সেই মেথডের রিটার্ন ভ্যালু ব্যবহার করতে পারেন। এটি খুবই শক্তিশালী, কারণ এর মাধ্যমে অ্যাপ্লিকেশনের কনফিগারেশনে ডাইনামিক মেথড কল করা সম্ভব হয়, যা অন্যান্য উপায়ে সহজে করা যায় না।

SpEL এর মাধ্যমে মেথড কলিং করতে, আপনি সাধারণত #beanName.methodName() সিনট্যাক্স ব্যবহার করেন। এখানে beanName হল Spring Bean বা Java অবজেক্টের নাম এবং methodName হল সেই অবজেক্টের মেথডের নাম।


SpEL এর মাধ্যমে মেথড কলিং এর উদাহরণ

১. Spring Bean এ মেথড কলিং

Spring Bean এর মেথড কল করতে SpEL ব্যবহার করা যায়, যেখানে Spring Bean কনফিগারেশন বা অ্যানোটেশন ব্যবহার করে মেথড কল করা হয়।

উদাহরণ: EmployeeService Bean এবং SpEL মেথড কল

@Component
public class EmployeeService {
    
    public String getEmployeeName(int employeeId) {
        return "Employee_" + employeeId;
    }
}

এখন, এই EmployeeService Bean এর getEmployeeName() মেথড কল করার জন্য SpEL ব্যবহার করা হবে।

SpEL এর মাধ্যমে মেথড কলিং (XML কনফিগারেশনে)

<bean id="employeeService" class="com.example.EmployeeService"/>
<bean id="employeeBean" class="com.example.Employee">
    <property name="employeeName" value="#{employeeService.getEmployeeName(101)}"/>
</bean>

বর্ণনা:

  • এখানে SpEL এর মাধ্যমে EmployeeService Bean এর getEmployeeName(101) মেথড কল করা হয়েছে, এবং রিটার্ন ভ্যালু employeeName প্রপার্টিতে সেট করা হয়েছে।
  • #{} চিহ্ন দ্বারা SpEL এক্সপ্রেশন উল্লেখ করা হয়, যা Spring Container দ্বারা ইভ্যালুয়েট করা হয়।

২. SpEL এবং @Value অ্যানোটেশন ব্যবহার করে মেথড কলিং

Spring Framework এ @Value অ্যানোটেশন ব্যবহার করে SpEL এর মাধ্যমে মেথড কল করা যেতে পারে। এখানে আমরা @Value অ্যানোটেশন ব্যবহার করে Spring Bean এর মেথড কল করবো।

উদাহরণ: EmployeeService Bean এবং @Value অ্যানোটেশন

@Component
public class EmployeeService {

    public String getEmployeeDetails(int employeeId) {
        return "Employee Details for ID: " + employeeId;
    }
}

@Component
public class Employee {
    
    @Value("#{employeeService.getEmployeeDetails(102)}")
    private String employeeDetails;

    public String getEmployeeDetails() {
        return employeeDetails;
    }
}

বর্ণনা:

  • এখানে SpEL ব্যবহার করে employeeService.getEmployeeDetails(102) মেথড কল করা হয়েছে এবং employeeDetails প্রপার্টিতে তার রিটার্ন ভ্যালু সেট করা হয়েছে।
  • @Value অ্যানোটেশন #{} চিহ্ন দ্বারা SpEL এক্সপ্রেশন ইভ্যালুয়েট করে এবং মেথড কলের ফলাফল রিটার্ন করে।

৩. SpEL এর মাধ্যমে Static মেথড কলিং

SpEL এর মাধ্যমে static method কল করা যায়, যা সাধারণত ক্লাস নাম ব্যবহার করে করা হয়। Static মেথড কল করার জন্য T(ClassName).methodName() সিনট্যাক্স ব্যবহার করা হয়।

উদাহরণ: Static Method কল

@Component
public class MathService {
    
    public static int square(int number) {
        return number * number;
    }
}

এখন, MathService.square() মেথড SpEL এর মাধ্যমে কল করা হবে।

SpEL এর মাধ্যমে Static মেথড কল (XML কনফিগারেশনে)

<bean id="mathService" class="com.example.MathService"/>

<bean id="resultBean" class="com.example.Result">
    <property name="result" value="#{T(com.example.MathService).square(5)}"/>
</bean>

বর্ণনা:

  • T(com.example.MathService).square(5) এই SpEL এক্সপ্রেশনটি MathService ক্লাসের static square() মেথড কল করছে এবং result প্রপার্টিতে রিটার্ন ভ্যালু সেট করছে।
  • T(ClassName) সিনট্যাক্সে ClassName হল আপনার ক্লাসের সম্পূর্ণ নাম, যা static মেথড কল করার জন্য ব্যবহৃত হয়।

৪. Complex Method Calls with Parameters

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

উদাহরণ: Complex Method Call

@Component
public class CalculatorService {

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

এখন, SpEL ব্যবহার করে CalculatorService.add() মেথড কল করা হবে, যেখানে প্যারামিটারগুলি ডাইনামিকভাবে নির্ধারিত হবে।

SpEL এর মাধ্যমে Complex Method Call (XML কনফিগারেশনে)

<bean id="calculatorService" class="com.example.CalculatorService"/>

<bean id="calculationResult" class="com.example.CalculationResult">
    <property name="result" value="#{calculatorService.add(10, 20)}"/>
</bean>

বর্ণনা:

  • এখানে SpEL ব্যবহার করে calculatorService.add(10, 20) মেথড কল করা হয়েছে, যেখানে দুইটি প্যারামিটার 10 এবং 20 পাস করা হয়েছে এবং তাদের যোগফল result প্রপার্টিতে সেট করা হয়েছে।

সারাংশ

SpEL (Spring Expression Language) এর মাধ্যমে আপনি Spring Beans বা সাধারণ Java ক্লাসের মেথডগুলোকে রানটাইমে কল করতে পারেন। এটি খুবই শক্তিশালী এবং নমনীয়, যা আপনাকে Spring কনফিগারেশনে বা Java কোডে মেথড কল করার সুযোগ দেয়। SpEL এর মাধ্যমে আপনি সাধারণ মেথড কল, static মেথড কল, প্যারামিটারযুক্ত মেথড কল ইত্যাদি সহজেই করতে পারেন। SpEL এর এই ক্ষমতা Spring অ্যাপ্লিকেশনের ডাইনামিক কনফিগারেশন এবং কাস্টমাইজেশন করতে খুবই কার্যকরী।

Content added By

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

Spring Expression Language (SpEL) ব্যবহার করে আপনি Spring Beans বা সাধারণ Java objects এর মেথড কল করতে পারেন এবং প্যারামিটারও পাস করতে পারেন। এটি Spring Framework-এ ডাইনামিক কোড এক্সিকিউশন এবং কাস্টম লজিক প্রয়োগের জন্য খুবই শক্তিশালী টুল। SpEL ব্যবহার করে আপনি Object এর মেথড কল করতে এবং সেই মেথডে প্রয়োজনীয় প্যারামিটার পাস করতে পারবেন, যা আরও ডাইনামিক এবং ফ্লেক্সিবল কোড তৈরি করতে সাহায্য করে।


SpEL ব্যবহার করে Object মেথড কল করা

Spring Expression Language (SpEL) এ Object-এর মেথড কল করার জন্য #objectName.methodName() সিনট্যাক্স ব্যবহার করা হয়।

উদাহরণ:

ধরা যাক, আমাদের একটি Employee ক্লাস রয়েছে এবং সেই ক্লাসে একটি মেথড আছে যা কর্মচারীর বেতন হিসাব করে।

public class Employee {
    private String name;
    private double salary;

    public Employee(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }

    // Getter
    public String getName() {
        return name;
    }

    // Method to calculate bonus
    public double calculateBonus(double percentage) {
        return salary * percentage / 100;
    }
}

এই Employee ক্লাসের calculateBonus মেথড কল করতে আমরা SpEL ব্যবহার করতে পারি।


Spring Configuration Class

Spring Configuration ক্লাসে SpEL এক্সপ্রেশন ব্যবহার করে Employee ক্লাসের মেথড কল করার উদাহরণ:

@Configuration
public class AppConfig {

    @Bean
    public Employee employee() {
        return new Employee("John Doe", 50000);
    }

    @Bean
    public String bonusCalculation() {
        // SpEL Expression to call method
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();
        context.setVariable("employee", employee());  // setting the Employee object
        
        // Calling the method calculateBonus() with parameter 10 (percentage)
        Double bonus = (Double) parser.parseExpression("#employee.calculateBonus(10)").getValue(context);
        
        return "The calculated bonus is: " + bonus;
    }
}

এখানে, আমরা employee() Bean দিয়ে Employee object তৈরি করেছি এবং তারপর SpEL এক্সপ্রেশন ব্যবহার করে calculateBonus(10) মেথড কল করেছি। মেথডে 10 প্যারামিটার হিসেবে পাস করা হয়েছে, যা বোনাসের শতাংশ।


SpEL ব্যবহার করে Object মেথডে প্যারামিটার পাস করা

SpEL এর মাধ্যমে আপনি মেথডে প্যারামিটার পাস করতে পারেন। এক্সপ্রেশন ব্যবহার করে মেথডের প্যারামিটার নির্ধারণ করা হয় এবং সেই অনুযায়ী মেথড কল করা হয়।

উদাহরণ:

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

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

এখন, MathOperations ক্লাসের multiply এবং add মেথড কল করার জন্য SpEL ব্যবহার করা হবে:

@Configuration
public class AppConfig {

    @Bean
    public MathOperations mathOperations() {
        return new MathOperations();
    }

    @Bean
    public String operationResult() {
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();
        context.setVariable("mathOperations", mathOperations()); // setting MathOperations object

        // Call multiply method with parameters 5 and 10
        Integer result = (Integer) parser.parseExpression("#mathOperations.multiply(5, 10)").getValue(context);
        
        return "The result of multiplication is: " + result;
    }
}

এখানে, multiply(5, 10) মেথড কল করা হয়েছে যেখানে 5 এবং 10 প্যারামিটার হিসেবে পাস করা হয়েছে। SpEL এক্সপ্রেশনটি MathOperations Bean-এ কল করা হয়েছে এবং এর ফলাফলকে রিটার্ন করা হয়েছে।


SpEL এর মাধ্যমে Bean মেথডে প্যারামিটার পাস করা

Spring Beans এ SpEL ব্যবহার করে প্যারামিটার পাস করার জন্য @Value অ্যানোটেশনও ব্যবহার করা যায়। এখানে একটি উদাহরণ দেওয়া হলো:

@Component
public class Employee {
    private String name;
    private double salary;

    // Constructor
    public Employee(String name, double salary) {
        this.name = name;
        this.salary = salary;
    }

    // Method to display employee details
    public String displayEmployeeInfo(String prefix) {
        return prefix + ": " + name + " with a salary of " + salary;
    }
}

@Configuration
public class AppConfig {

    @Bean
    public Employee employee() {
        return new Employee("John Doe", 70000);
    }

    @Bean
    public String employeeInfo(@Value("#{employee.displayEmployeeInfo('Employee Info')}") String info) {
        return info;
    }
}

এখানে, @Value অ্যানোটেশন ব্যবহার করে SpEL দিয়ে displayEmployeeInfo মেথড কল করা হয়েছে এবং prefix প্যারামিটার হিসেবে 'Employee Info' পাস করা হয়েছে।


সারাংশ

Spring Expression Language (SpEL) ব্যবহার করে Spring Beans বা সাধারণ Java objects এর মেথড কল করা এবং প্যারামিটার পাস করা খুবই সহজ এবং শক্তিশালী। আপনি SpEL ব্যবহার করে #object.method() সিনট্যাক্স ব্যবহার করে মেথড কল করতে পারেন এবং () এর মধ্যে প্যারামিটার পাস করতে পারেন। এই প্রক্রিয়া Spring Framework-এ ডাইনামিক লজিক প্রয়োগের জন্য অত্যন্ত কার্যকরী এবং ফ্লেক্সিবল।

Content added By

Spring Expression Language (SpEL) একটি শক্তিশালী ভাষা যা স্প্রিং কনফিগারেশন ফাইল বা কোডে এক্সপ্রেশন এবং ডাইনামিক লজিক ব্যবহার করতে সাহায্য করে। SpEL দিয়ে আপনি Spring Beans-এর মেথড কল করতে পারেন, ডাইনামিক্যালি প্যারামিটার পাস করতে পারেন, এবং মেথড রিটার্ন ভ্যালু গ্রহণ করতে পারেন।

এখানে SpEL ব্যবহার করে মেথড কল করার উদাহরণ দেখানো হবে।


Maven বা Gradle কনফিগারেশন

SpEL ব্যবহার করতে হলে প্রথমে Maven বা Gradle প্রজেক্টের মধ্যে Spring Context এবং Spring Expression লাইব্রেরি যোগ করতে হবে।

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'
}

Method Invocation with SpEL

SpEL এর মাধ্যমে আপনি Spring Beans-এর মেথড কল করতে পারেন। এই কাজের জন্য # সাইন এবং Bean নাম ব্যবহার করা হয়, এবং মেথড নামসহ প্যারামিটার পাঠানো হয়।

Step 1: Spring Bean তৈরি করা

প্রথমে একটি Spring Bean ক্লাস তৈরি করতে হবে, যার মধ্যে মেথড থাকবে।

public class GreetingService {

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

    public String greetMultipleNames(String name1, String name2) {
        return "Hello, " + name1 + " and " + name2 + "!";
    }
}

এখানে greet এবং greetMultipleNames নামক দুটি মেথড রয়েছে, যেগুলি স্প্রিং কনটেক্সটের মধ্যে SpEL দ্বারা কল করা যাবে।

Step 2: Spring কনফিগারেশন ফাইলে SpEL Method Invocation

Spring XML কনফিগারেশন ফাইলে SpEL ব্যবহার করে মেথড কল করা যেতে পারে। উদাহরণস্বরূপ:

<bean id="greetingService" class="com.example.GreetingService" />

<bean id="messageBean" class="java.lang.String">
    <constructor-arg value="#{greetingService.greet('John')}"/>
</bean>

<bean id="messageBeanMultiple" class="java.lang.String">
    <constructor-arg value="#{greetingService.greetMultipleNames('John', 'Jane')}"/>
</bean>

এখানে, greetingService.greet('John') SpEL এক্সপ্রেশনটি GreetingService ক্লাসের greet মেথড কল করছে এবং "John" প্যারামিটার পাঠাচ্ছে। এছাড়া, greetMultipleNames মেথডটি দুইটি প্যারামিটার গ্রহণ করছে ('John' এবং 'Jane')।

Step 3: Java কোডে SpEL Method Invocation

Java কোডের মধ্যে SpEL ব্যবহার করার জন্য ExpressionParser এবং StandardEvaluationContext ব্যবহার করতে হবে।

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) {
        // Create Spring Bean
        GreetingService greetingService = new GreetingService();

        // Create ExpressionParser and StandardEvaluationContext
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();

        // Set the greetingService bean in the context
        context.setVariable("greetingService", greetingService);

        // Call the 'greet' method using SpEL
        String result1 = parser.parseExpression("#greetingService.greet('John')").getValue(context, String.class);
        System.out.println(result1);  // Output: Hello, John!

        // Call the 'greetMultipleNames' method using SpEL
        String result2 = parser.parseExpression("#greetingService.greetMultipleNames('John', 'Jane')").getValue(context, String.class);
        System.out.println(result2);  // Output: Hello, John and Jane!
    }
}

এখানে, #greetingService.greet('John') SpEL এক্সপ্রেশন greetingService বিয়ানটির greet মেথড কল করছে এবং John প্যারামিটার পাঠাচ্ছে।


SpEL Method Invocation এর সুবিধা

  1. ডাইনামিক এক্সপ্রেশন: SpEL দিয়ে runtime এ মেথড কল করতে পারবেন এবং এক্সপ্রেশন অনুযায়ী প্যারামিটার এবং ফলাফল পরিবর্তন করতে পারবেন।
  2. কোড কনফিগারেশনে মেথড কল: স্প্রিং কনফিগারেশন ফাইলে (XML বা Java-based) সরাসরি SpEL ব্যবহার করে মেথড কল করতে পারবেন।
  3. মেথড রিটার্ন ভ্যালু: SpEL এর মাধ্যমে আপনি মেথডের রিটার্ন ভ্যালু গ্রহণ করতে পারবেন এবং সেটি অন্য কোন প্রসেসিং বা কনফিগারেশনে ব্যবহার করতে পারবেন।

সারাংশ

Spring Expression Language (SpEL) এর মাধ্যমে Spring Beans এর মেথড কল করা অনেক সহজ এবং শক্তিশালী। আপনি XML কনফিগারেশন বা Java কোডের মাধ্যমে SpEL এক্সপ্রেশন ব্যবহার করে Spring Beans এর মেথড কল করতে পারেন, এবং ডাইনামিকভাবে প্যারামিটার প্রদান করে সেগুলির রিটার্ন ভ্যালু গ্রহণ করতে পারেন। SpEL একটি খুবই শক্তিশালী টুল যা স্প্রিং অ্যাপ্লিকেশনগুলিতে ডাইনামিক এবং কাস্টম লজিক যোগ করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...