উদাহরণ সহ Bean References এবং Methods

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

380

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


Bean References in SpEL

SpEL এর মাধ্যমে Spring Bean রেফারেন্স অ্যাক্সেস করা এবং তাদের প্রপার্টি বা মেথড কল করা যেতে পারে। Spring কনটেক্সটের মধ্যে Bean রেফারেন্স ব্যবহার করতে SpEL-এ @beanName সিনট্যাক্স ব্যবহার করা হয়।

উদাহরণ:

ধরা যাক, আমাদের একটি Person ক্লাস এবং একটি GreetingService ক্লাস আছে, এবং আমাদের SpEL ব্যবহার করে এই Beans গুলির প্রপার্টি বা মেথডে অ্যাক্সেস করতে হবে।

1. Person Bean

public class Person {
    private String name;

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

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

2. GreetingService Bean

public class GreetingService {
    public String getGreeting() {
        return "Good Morning!";
    }
}

3. Spring 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.Person">
        <constructor-arg value="John"/>
    </bean>

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

Bean References with SpEL in Code

এখন, SpEL ব্যবহার করে Spring Beans অ্যাক্সেস এবং তাদের মেথড কল করা হবে।

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 SpELBeanExample {
    public static void main(String[] args) {
        // Load Spring context from XML configuration
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

        // Get SpEL expression parser
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
        
        // Register Spring beans for SpEL evaluation
        evaluationContext.setVariable("person", context.getBean("person"));
        evaluationContext.setVariable("greetingService", context.getBean("greetingService"));

        // Accessing Bean property and method using SpEL
        String greeting = parser.parseExpression("@person.name").getValue(evaluationContext, String.class);
        System.out.println(greeting);  // Output: John
        
        String greetingMessage = parser.parseExpression("@person.greet()").getValue(evaluationContext, String.class);
        System.out.println(greetingMessage);  // Output: Hello, John

        String morningGreeting = parser.parseExpression("@greetingService.getGreeting()").getValue(evaluationContext, String.class);
        System.out.println(morningGreeting);  // Output: Good Morning!
    }
}

SpEL ব্যাখ্যা:

  • @person.name: SpEL-এ @ চিহ্ন ব্যবহার করা হয় Bean রেফারেন্সের জন্য।
  • @person.greet(): SpEL-এ Bean মেথড কল করার জন্য () ব্যবহার করা হয়।
  • @greetingService.getGreeting(): SpEL-এ getGreeting() মেথড কল করা হয়েছে GreetingService Bean-এর জন্য।

Method Invocation in SpEL

SpEL-এ Method Invocation খুবই সাধারণ এবং গুরুত্বপূর্ণ ফিচার। Bean মেথডের মধ্যে থেকে ডেটা রিটার্ন করার জন্য SpEL ব্যবহার করা যেতে পারে।

উদাহরণ:

ধরা যাক, আমাদের একটি MathService Bean আছে যার মধ্যে একটি add মেথড আছে যা দুইটি সংখ্যার যোগফল প্রদান করে।

1. MathService Bean

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

2. Spring XML কনফিগারেশন

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

Method Invocation Using 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 SpELMethodInvocationExample {
    public static void main(String[] args) {
        // Load Spring context from XML configuration
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

        // Get SpEL expression parser
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
        
        // Register Spring bean for SpEL evaluation
        evaluationContext.setVariable("mathService", context.getBean("mathService"));

        // Invoking the method 'add' in MathService using SpEL
        int sum = parser.parseExpression("@mathService.add(10, 20)").getValue(evaluationContext, Integer.class);
        System.out.println("Sum: " + sum);  // Output: Sum: 30
    }
}

SpEL ব্যাখ্যা:

  • @mathService.add(10, 20): SpEL-এ add মেথড কল করা হয়েছে MathService Bean এর মাধ্যমে এবং এটি দুইটি আর্গুমেন্ট (10 এবং 20) গ্রহণ করছে।

উপসংহার

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

Content added By
Promotion

Are you sure to start over?

Loading...