স্পেল এক্সপ্রেশন (Literal Expressions, Property Access, Method Invocation)

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

243

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


SpEL এক্সপ্রেশন

SpEL এক্সপ্রেশনগুলো বিভিন্ন ধরণের হতে পারে যেমন Literal Expressions, Property Access, এবং Method Invocation। নিচে এই প্রতিটি এক্সপ্রেশন কীভাবে ব্যবহার করা যায় তা বিস্তারিতভাবে আলোচনা করা হয়েছে।


1. Literal Expressions

Literal Expressions হলো সরাসরি নির্দিষ্ট মান (string, number, boolean ইত্যাদি) যা SpEL এক্সপ্রেশন হিসাবে ব্যবহার করা হয়।

উদাহরণ:

ExpressionParser parser = new SpelExpressionParser();

// String Literal
Expression exp1 = parser.parseExpression("'Hello, SpEL!'");
String result1 = (String) exp1.getValue();
System.out.println(result1); // Output: Hello, SpEL!

// Integer Literal
Expression exp2 = parser.parseExpression("100");
int result2 = (Integer) exp2.getValue();
System.out.println(result2); // Output: 100

// Boolean Literal
Expression exp3 = parser.parseExpression("true");
boolean result3 = (Boolean) exp3.getValue();
System.out.println(result3); // Output: true

2. Property Access

Property Access এর মাধ্যমে SpEL একটি অবজেক্টের প্রপার্টি অ্যাক্সেস করতে সক্ষম। এটি getter মেথড বা public field ব্যবহার করে ডেটা রিট্রিভ বা সেট করতে পারে।

উদাহরণ:

public class Person {
    private String name;
    private int age;

    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

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

    public int getAge() {
        return age;
    }
}

ExpressionParser parser = new SpelExpressionParser();
Person person = new Person("John", 30);

// Accessing property 'name'
Expression exp1 = parser.parseExpression("name");
String name = (String) exp1.getValue(person);
System.out.println(name); // Output: John

// Accessing property 'age'
Expression exp2 = parser.parseExpression("age");
int age = (Integer) exp2.getValue(person);
System.out.println(age); // Output: 30

এছাড়া, setter মেথড ব্যবহার করে প্রপার্টি সেটও করা যেতে পারে:

// Setting property 'name'
Expression exp3 = parser.parseExpression("name");
exp3.setValue(person, "Alice");
System.out.println(person.getName()); // Output: Alice

3. Method Invocation

SpEL-এ Method Invocation ব্যবহার করে অবজেক্টের মেথড কল করা যেতে পারে। এটি প্যারামিটার সহ মেথড কল করতে পারে এবং মেথডের রিটার্ন ভ্যালু ফেরত দিতে পারে।

উদাহরণ:

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

    public int subtract(int a, int b) {
        return a - b;
    }
}

ExpressionParser parser = new SpelExpressionParser();
Calculator calculator = new Calculator();

// Invoking method 'add'
Expression exp1 = parser.parseExpression("add(10, 20)");
int result1 = (Integer) exp1.getValue(calculator);
System.out.println(result1); // Output: 30

// Invoking method 'subtract'
Expression exp2 = parser.parseExpression("subtract(50, 20)");
int result2 = (Integer) exp2.getValue(calculator);
System.out.println(result2); // Output: 30

এছাড়া, Static Methods এবং Constructor Invocationও SpEL ব্যবহার করে করা সম্ভব।

Static Method Example:

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

ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("T(com.example.MathUtils).multiply(5, 3)");
int result = (Integer) exp.getValue();
System.out.println(result); // Output: 15

সারাংশ

SpEL (Spring Expression Language) Spring ফ্রেমওয়ার্কের একটি শক্তিশালী উপাদান যা অবজেক্টের প্রপার্টি অ্যাক্সেস, মেথড কল, কন্ডিশনাল এক্সপ্রেশন, এবং আরও অনেক কিছু সহজভাবে পরিচালনা করতে সাহায্য করে। Literal Expressions, Property Access, এবং Method Invocation হল SpEL-এর প্রধান এক্সপ্রেশন ধরনের যা বিভিন্ন পরিস্থিতিতে অত্যন্ত কার্যকরী। SpEL এর মাধ্যমে Java Beans-এর প্রপার্টি এবং মেথডের ওপর কাজ করতে সহজভাবে কোড লেখা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...