Arrays এবং Collections

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

279

Spring Expression Language (SpEL) একটি শক্তিশালী টুল যা ডেটা এক্সপ্রেশন এবং ম্যানিপুলেশনকে সহজ করে তোলে। SpEL এর মাধ্যমে Arrays এবং Collections যেমন Lists, Maps, Sets ইত্যাদি অ্যাক্সেস এবং ম্যানিপুলেট করা সম্ভব। SpEL অ্যারে এবং কালেকশন সাপোর্ট করে যা Spring অ্যাপ্লিকেশন ডেভেলপমেন্টকে আরও নমনীয় এবং শক্তিশালী করে তোলে।


Arrays এবং Collections এর SpEL ব্যবহার

1. Arrays

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

উদাহরণ:

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

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

        // Array initialization
        int[] numbers = {1, 2, 3, 4, 5};

        // Accessing array element at index 2 (third element)
        String expression = "#numbers[2]";
        int result = parser.parseExpression(expression).getValue(numbers, Integer.class);
        System.out.println(result);  // Output: 3

        // Modifying array element at index 0
        expression = "#numbers[0] = 10";
        parser.parseExpression(expression).getValue(numbers);
        System.out.println(numbers[0]);  // Output: 10
    }
}

এই উদাহরণে, আমরা একটি অ্যারে ইনিশিয়ালাইজ করেছি এবং SpEL ব্যবহার করে তার মধ্যে আইটেম অ্যাক্সেস এবং আপডেট করেছি।


2. Collections

SpEL Collections যেমন Lists, Sets, এবং Maps সাপোর্ট করে। SpEL ব্যবহার করে আমরা কলেকশনগুলোর উপাদান অ্যাক্সেস, ফিল্টারিং এবং ম্যানিপুলেশন করতে পারি।

2.1 List

SpEL এ List অ্যাক্সেস এবং ম্যানিপুলেশন করা খুবই সহজ।

import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import java.util.Arrays;
import java.util.List;

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

        // List initialization
        List<String> names = Arrays.asList("John", "Jane", "Alice", "Bob");

        // Accessing element at index 1 (second element)
        String expression = "#names[1]";
        String result = parser.parseExpression(expression).getValue(names, String.class);
        System.out.println(result);  // Output: Jane

        // Accessing first element
        expression = "#names[0]";
        result = parser.parseExpression(expression).getValue(names, String.class);
        System.out.println(result);  // Output: John

        // Modifying an element in the list
        expression = "#names[2] = 'Charlie'";
        parser.parseExpression(expression).getValue(names);
        System.out.println(names.get(2));  // Output: Charlie
    }
}

এই উদাহরণে, আমরা একটি List তৈরি করেছি এবং SpEL ব্যবহার করে এর মধ্যে থেকে আইটেম অ্যাক্সেস এবং পরিবর্তন করেছি।


2.2 Set

Set এর উপরেও SpEL প্রয়োগ করা যেতে পারে। যেমন:

import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import java.util.HashSet;
import java.util.Set;

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

        // Set initialization
        Set<String> fruits = new HashSet<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        // Checking if "Banana" exists in the set
        String expression = "#fruits.contains('Banana')";
        boolean result = parser.parseExpression(expression).getValue(fruits, Boolean.class);
        System.out.println(result);  // Output: true

        // Adding a new element to the set
        expression = "#fruits.add('Orange')";
        parser.parseExpression(expression).getValue(fruits);
        System.out.println(fruits.contains("Orange"));  // Output: true
    }
}

Set-এর ক্ষেত্রে, contains() মেথড ব্যবহার করে একটি নির্দিষ্ট উপাদান আছে কিনা পরীক্ষা করা হয়েছে, এবং নতুন উপাদান যোগ করা হয়েছে।


2.3 Map

Map ব্যবহার করার সময় SpEL ব্যবহার করে key-value পেয়ার অ্যাক্সেস এবং ম্যানিপুলেট করা যায়।

import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import java.util.HashMap;
import java.util.Map;

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

        // Map initialization
        Map<String, Integer> inventory = new HashMap<>();
        inventory.put("Apple", 100);
        inventory.put("Banana", 200);
        inventory.put("Orange", 150);

        // Accessing value for a specific key
        String expression = "#inventory['Apple']";
        int result = parser.parseExpression(expression).getValue(inventory, Integer.class);
        System.out.println(result);  // Output: 100

        // Modifying the value for a specific key
        expression = "#inventory['Apple'] = 120";
        parser.parseExpression(expression).getValue(inventory);
        System.out.println(inventory.get("Apple"));  // Output: 120
    }
}

এই উদাহরণে, SpEL ব্যবহার করে একটি Map থেকে value অ্যাক্সেস এবং সেট করা হয়েছে।


সারাংশ

SpEL (Spring Expression Language) Arrays এবং Collections-এর উপর অত্যন্ত কার্যকরী এক্সপ্রেশন পরিচালনা করতে সক্ষম। এটি আপনাকে Arrays এর উপাদান অ্যাক্সেস এবং পরিবর্তন করতে, এবং Lists, Sets, এবং Maps এর উপাদানগুলি ম্যানিপুলেট করতে সহায়তা করে। SpEL ব্যবহার করে অ্যারে এবং কালেকশনগুলির সাথে কাজ করা অনেক সহজ এবং স্পষ্ট হয়, বিশেষত Spring-based অ্যাপ্লিকেশনগুলিতে ডাইনামিক এক্সপ্রেশন এবং ডেটা ম্যানিপুলেশন করার সময়।

Content added By

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

এখানে আমরা দেখব কিভাবে SpEL এর মাধ্যমে Arrays এবং Lists কে ম্যানিপুলেট করা যায়।


১. Arrays এর মাধ্যমে SpEL ম্যানিপুলেট করা

১.১. Array Initialization এবং Access

SpEL ব্যবহার করে আপনি সহজেই Java Arrays তৈরি এবং এক্সেস করতে পারেন।

@Configuration
public class SpelArrayExample {

    @Value("#{new int[]{1, 2, 3, 4, 5}}")
    private int[] numbers;

    @PostConstruct
    public void init() {
        System.out.println("Array Values:");
        for (int number : numbers) {
            System.out.println(number);
        }
    }
}

এখানে @Value("#{new int[]{1, 2, 3, 4, 5}}") এক্সপ্রেশন ব্যবহার করে একটি নতুন int[] অ্যারে তৈরি করা হয়েছে এবং এর উপাদানগুলি প্রিন্ট করা হয়েছে।

১.২. Array এর মধ্যে একটি নির্দিষ্ট উপাদান অ্যাক্সেস

SpEL এর মাধ্যমে অ্যারের একটি নির্দিষ্ট উপাদানও অ্যাক্সেস করা যায়:

@Value("#{new int[]{10, 20, 30, 40, 50}[2]}")
private int thirdElement;

@PostConstruct
public void init() {
    System.out.println("Third Element: " + thirdElement);
}

এখানে, new int[]{10, 20, 30, 40, 50}[2] ব্যবহার করা হয়েছে, যেখানে [2] একটি নির্দিষ্ট ইনডেক্স (৩য় উপাদান) রিটার্ন করবে, অর্থাৎ ৩০।


২. Lists এর মাধ্যমে SpEL ম্যানিপুলেট করা

২.১. List Initialization এবং Access

SpEL দিয়ে একটি List তৈরি করা এবং তার উপাদান অ্যাক্সেস করা সহজ:

@Configuration
public class SpelListExample {

    @Value("#{T(java.util.Arrays).asList('Spring', 'Hibernate', 'JPA', 'SpEL')}")
    private List<String> technologies;

    @PostConstruct
    public void init() {
        System.out.println("Technologies:");
        for (String tech : technologies) {
            System.out.println(tech);
        }
    }
}

এখানে T(java.util.Arrays).asList('Spring', 'Hibernate', 'JPA', 'SpEL') ব্যবহার করে একটি List তৈরি করা হয়েছে, যা Spring Framework, Hibernate, JPA, এবং SpEL এর নামগুলো ধারণ করে।

২.২. List এর মধ্যে নির্দিষ্ট উপাদান অ্যাক্সেস

SpEL ব্যবহার করে List-এর মধ্যে নির্দিষ্ট উপাদানকে অ্যাক্সেস করা যায়:

@Value("#{T(java.util.Arrays).asList('Apple', 'Banana', 'Cherry')[1]}")
private String secondElement;

@PostConstruct
public void init() {
    System.out.println("Second Element: " + secondElement);
}

এখানে T(java.util.Arrays).asList('Apple', 'Banana', 'Cherry')[1] ব্যবহার করা হয়েছে, যা Banana রিটার্ন করবে (এটি List এর দ্বিতীয় উপাদান)।


৩. Lists বা Arrays এর উপর কিছু কার্যকর SpEL অপারেশন

৩.১. List থেকে এলিমেন্ট খোঁজা

SpEL এর মাধ্যমে List এর মধ্যে নির্দিষ্ট এলিমেন্ট খোঁজা সহজ:

@Value("#{T(java.util.Arrays).asList('Spring', 'Hibernate', 'JPA').contains('Hibernate')}")
private boolean containsHibernate;

@PostConstruct
public void init() {
    System.out.println("List contains 'Hibernate': " + containsHibernate);
}

এখানে SpEL এর contains() মেথড ব্যবহার করে চেক করা হয়েছে যে 'Hibernate' List এর মধ্যে আছে কিনা।

৩.২. List এর আকার (Size) বের করা

List এর আকার বের করার জন্য SpEL ব্যবহার করা যেতে পারে:

@Value("#{T(java.util.Arrays).asList('Spring', 'Hibernate', 'JPA').size()}")
private int listSize;

@PostConstruct
public void init() {
    System.out.println("List Size: " + listSize);
}

এখানে size() মেথড ব্যবহার করে List এর আকার বের করা হয়েছে।

৩.৩. Array বা List এর উপাদান পরিবর্তন

SpEL ব্যবহার করে Array বা List-এর উপাদান পরিবর্তন করা যায়:

@Value("#{T(java.util.Arrays).asList('Apple', 'Banana', 'Cherry')[0] = 'Orange'}")
private String firstElementChanged;

@PostConstruct
public void init() {
    System.out.println("Updated First Element: " + firstElementChanged);
}

এখানে, প্রথম উপাদানটি Apple থেকে পরিবর্তিত হয়ে Orange করা হয়েছে।


৪. SpEL-এ আরও কিছু কমন ফিচার ব্যবহার

৪.১. Arrays বা Lists এর মাধ্যমে Mapping

SpEL দিয়ে Arrays বা Lists এর উপর map অপারেশন করা যায়:

@Value("#{T(java.util.Arrays).asList(1, 2, 3, 4, 5).stream().map(x -> x * 2).collect(T(java.util.stream.Collectors).toList())}")
private List<Integer> doubledNumbers;

@PostConstruct
public void init() {
    System.out.println("Doubled Numbers: " + doubledNumbers);
}

এখানে SpEL-এর stream(), map(), এবং collect() ব্যবহার করে List এর প্রতিটি সংখ্যাকে দ্বিগুণ করা হয়েছে।

৪.২. Collection Filtering

SpEL-এ ফিল্টারিং অপারেশনও করা যায়:

@Value("#{T(java.util.Arrays).asList(1, 2, 3, 4, 5).stream().filter(x -> x % 2 == 0).collect(T(java.util.stream.Collectors).toList())}")
private List<Integer> evenNumbers;

@PostConstruct
public void init() {
    System.out.println("Even Numbers: " + evenNumbers);
}

এখানে, SpEL ব্যবহার করে শুধু জোড় সংখ্যা (evenNumbers) নির্বাচন করা হয়েছে।


সারাংশ

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

Content added By

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

এই টিউটোরিয়ালে আমরা দেখবো কীভাবে SpEL-এর মাধ্যমে Set এবং Map ডেটা কাঠামোর সাথে কাজ করা যায়।


SpEL এবং Set

Set হল একটি সংগ্রহ (Collection) ডেটা কাঠামো যা অর্ডারবিহীন এবং ইউনিক আইটেম ধারণ করে। SpEL ব্যবহার করে Set-এর মধ্যে সদস্য অ্যাক্সেস এবং পরিচালনা করা যায়।

Set এর সাথে SpEL ব্যবহার

SpEL এর মাধ্যমে আপনি Set-এর মধ্যে সদস্য অ্যাক্সেস করতে, সদস্য যোগ করতে এবং সেটের মান পরিবর্তন করতে পারেন। নিচে একটি উদাহরণ দেখানো হয়েছে।

উদাহরণ ১: Set তৈরি এবং সদস্য অ্যাক্সেস

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

import java.util.HashSet;
import java.util.Set;

public class SpELSetExample {
    public static void main(String[] args) {
        // SpEL expression parser তৈরি
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();

        // Set তৈরি এবং SpEL কনটেক্সটে সেট করা
        Set<String> mySet = new HashSet<>();
        mySet.add("Apple");
        mySet.add("Banana");
        mySet.add("Orange");
        context.setVariable("mySet", mySet);

        // Set থেকে সদস্য অ্যাক্সেস
        Set<String> result = parser.parseExpression("#mySet").getValue(context, Set.class);
        
        // ফলাফল প্রদর্শন
        System.out.println("Set elements: " + result);  // ["Apple", "Banana", "Orange"]
    }
}

এখানে mySet একটি Set যা SpEL কনটেক্সটে সেট করা হয়েছে এবং সেটের সমস্ত সদস্য #mySet এক্সপ্রেশনের মাধ্যমে অ্যাক্সেস করা হয়েছে।


SpEL এবং Map

Map হল একটি ডেটা কাঠামো যা কী-বেসড ভ্যালু পেয়ার ধারণ করে। SpEL-এর মাধ্যমে Map-এর কীগুলির সাথে ভ্যালু অ্যাক্সেস এবং ম্যানিপুলেট করা যায়।

Map এর সাথে SpEL ব্যবহার

SpEL-এর মাধ্যমে আপনি Map-এর মধ্যে কী-বেসড অ্যাক্সেস, মান পরিবর্তন এবং নতুন কী-ভ্যালু পেয়ার যোগ করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো।

উদাহরণ ২: Map তৈরি এবং কী-ভ্যালু অ্যাক্সেস

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

import java.util.HashMap;
import java.util.Map;

public class SpELMapExample {
    public static void main(String[] args) {
        // SpEL expression parser তৈরি
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();

        // Map তৈরি এবং SpEL কনটেক্সটে সেট করা
        Map<String, Integer> myMap = new HashMap<>();
        myMap.put("Apple", 3);
        myMap.put("Banana", 5);
        myMap.put("Orange", 2);
        context.setVariable("myMap", myMap);

        // Map থেকে নির্দিষ্ট কী দিয়ে মান পাওয়া
        Integer result = parser.parseExpression("#myMap['Apple']").getValue(context, Integer.class);
        
        // ফলাফল প্রদর্শন
        System.out.println("Value for Apple: " + result);  // 3
    }
}

এখানে myMap একটি Map যার মধ্যে কীগুলি হল Apple, Banana, এবং Orange, এবং তাদের সাথে যুক্ত মান গুলি রয়েছে। #myMap['Apple'] এক্সপ্রেশনের মাধ্যমে Apple কী এর মান অ্যাক্সেস করা হয়েছে।


SpEL এবং Set/Map-এ ক্রিয়াকলাপ

SpEL এর মাধ্যমে আপনি Set এবং Map-এর ওপর বিভিন্ন ধরনের ক্রিয়াকলাপ যেমন Add, Remove, Contains ইত্যাদি করতে পারেন।

উদাহরণ ৩: Set এ সদস্য যোগ এবং মুছে ফেলা

Set<String> mySet = new HashSet<>();
mySet.add("Apple");
mySet.add("Banana");

context.setVariable("mySet", mySet);

// Set এ সদস্য যোগ করা
parser.parseExpression("#mySet.add('Orange')").getValue(context);

// Set থেকে সদস্য মুছে ফেলা
parser.parseExpression("#mySet.remove('Banana')").getValue(context);

System.out.println("Updated Set: " + mySet);  // ["Apple", "Orange"]

উদাহরণ ৪: Map এ নতুন কী-ভ্যালু পেয়ার যোগ এবং মান পরিবর্তন

Map<String, Integer> myMap = new HashMap<>();
myMap.put("Apple", 3);
myMap.put("Banana", 5);

context.setVariable("myMap", myMap);

// Map এ নতুন কী-ভ্যালু পেয়ার যোগ করা
parser.parseExpression("#myMap.put('Orange', 2)").getValue(context);

// Map-এর মান পরিবর্তন
parser.parseExpression("#myMap.put('Apple', 10)").getValue(context);

System.out.println("Updated Map: " + myMap);  // {Apple=10, Banana=5, Orange=2}

SpEL এর মাধ্যমে Set এবং Map ব্যবহারের সুবিধা

  1. ডাইনামিক ডেটা অ্যাক্সেস: SpEL ব্যবহার করে Set এবং Map-এর মধ্যে ডেটা পরিবর্তন, অ্যাক্সেস, এবং ম্যানিপুলেশন খুব সহজ হয়। এতে ডেটা প্রক্রিয়াকরণ আরও সহজ এবং দ্রুত হয়।
  2. Flexibility: SpEL আপনাকে এক্সপ্রেশনগুলি রানটাইমে পরিবর্তন করতে এবং কনটেক্সটের উপর ভিত্তি করে ডেটা অ্যাক্সেস করতে সাহায্য করে।
  3. Spring Integration: SpEL সহজে Spring Beans, Spring Security এবং অন্যান্য Spring প্রযুক্তির সাথে ইন্টিগ্রেট করা যায়।

উপসংহার

SpEL ব্যবহার করে আপনি Set এবং Map এর মতো জটিল ডেটা কাঠামোর সাথে সহজে কাজ করতে পারেন। Set-এর সদস্য অ্যাক্সেস করা, Map-এর কী-ভ্যালু পেয়ার ব্যবহার করা, এবং ডেটা ম্যানিপুলেশন করা SpEL এর মাধ্যমে খুবই সহজ হয়ে ওঠে। এটি Spring Framework-এর মধ্যে ডাইনামিক এক্সপ্রেশন এবং ডেটা ম্যানিপুলেশন করার জন্য একটি অত্যন্ত শক্তিশালী সরঞ্জাম।

Content added By

Spring Expression Language (SpEL) হল একটি শক্তিশালী ভাষা যা Spring ফ্রেমওয়ার্কের মধ্যে এক্সপ্রেশন ম্যানিপুলেশন করতে ব্যবহৃত হয়। SpEL ব্যবহার করে Collections (যেমন: List, Set, Map) ম্যানিপুলেট করা সম্ভব। SpEL এর মাধ্যমে আপনি সহজে Collection থেকে ডেটা বের করতে, ফিল্টার করতে, বা অন্যান্য অপারেশন যেমন যোগ, মুছে ফেলা ইত্যাদি করতে পারেন।

SpEL-এ Collection ম্যানিপুলেশন করতে বিভিন্ন ধরনের অপারেটর এবং ফিচার রয়েছে, যেমন ফিল্টারিং, মেম্বার অ্যাক্সেস, অ্যাকশন (যেমন অ্যাড করা), মেথড কল ইত্যাদি।


Collections ম্যানিপুলেশন এর প্রধান অপারেশন

1. List বা Set থেকে উপাদান অ্যাক্সেস

SpEL দিয়ে List বা Set থেকে নির্দিষ্ট উপাদান অ্যাক্সেস করা যায়। উদাহরণস্বরূপ, list[0] দিয়ে প্রথম উপাদান অ্যাক্সেস করা।

উদাহরণ: List থেকে উপাদান অ্যাক্সেস

@Value("#{myList[0]}")
private String firstElement;

ব্যাখ্যা:
এখানে myList[0] SpEL এক্সপ্রেশনটি myList নামক লিস্টের প্রথম উপাদানটিকে অ্যাক্সেস করবে।

2. List বা Set এ আইটেম যোগ করা

SpEL এর মাধ্যমে Collection এ নতুন আইটেমও যোগ করা যায়।

@Value("#{myList.add('New Item')}")
private boolean itemAdded;

ব্যাখ্যা:
এখানে myList.add('New Item') SpEL এক্সপ্রেশনটি myList লিস্টে একটি নতুন উপাদান যোগ করবে।

3. Collection এর উপর ফিল্টারিং

SpEL দিয়ে Collection-এর উপর ফিল্টারিং বা শর্তাধীন অপারেশন করা যায়। উদাহরণস্বরূপ, লিস্ট থেকে এমন উপাদান বের করা যেগুলোর কিছু নির্দিষ্ট শর্ত পূর্ণ হয়।

@Value("#{myList.?[length() > 5]}")
private List<String> filteredList;

ব্যাখ্যা:
এখানে myList.?[length() > 5] SpEL এক্সপ্রেশনটি এমন সমস্ত আইটেম বের করবে যেগুলোর দৈর্ঘ্য 5 এর বেশি।

4. Map এর Key-Value অ্যাক্সেস

SpEL এর মাধ্যমে Map-এর Key এবং Value এক্সেস করা যায়।

@Value("#{myMap['key1']}")
private String mapValue;

ব্যাখ্যা:
এখানে myMap['key1'] SpEL এক্সপ্রেশনটি myMap নামক ম্যাপে key1 এর মানকে অ্যাক্সেস করবে।

5. Map এ Key-Value যোগ করা

@Value("#{myMap.put('key3', 'value3')}")
private boolean isAddedToMap;

ব্যাখ্যা:
এখানে myMap.put('key3', 'value3') SpEL এক্সপ্রেশনটি myMap ম্যাপে key3 এবং value3 যোগ করবে।

6. Collection এর উপর লজিক্যাল অপারেশন এবং মেথড কল

SpEL দিয়ে Collection এ কিছু শর্তাধীন অপারেশন, যেমন any, all, select, reject ইত্যাদি ব্যবহার করা যায়।

@Value("#{myList.?[startsWith('S')].size()}")
private int sizeOfFilteredList;

ব্যাখ্যা:
এখানে myList.?[startsWith('S')] SpEL এক্সপ্রেশনটি myList লিস্ট থেকে এমন উপাদানগুলো ফিল্টার করবে যেগুলোর নাম 'S' দিয়ে শুরু হয়, এবং তারপর তাদের সংখ্যা বের করবে।


Spring Bean-এ Collections ম্যানিপুলেশন উদাহরণ

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.Set;

@Component
public class CollectionManipulationExample {

    @Value("#{myList}")
    private List<String> myList;

    @Value("#{mySet}")
    private Set<String> mySet;

    @Value("#{myMap}")
    private Map<String, String> myMap;

    public void manipulateCollections() {
        // List থেকে প্রথম উপাদান অ্যাক্সেস
        System.out.println("First Element in List: " + myList.get(0));

        // List-এ নতুন আইটেম যোগ করা
        myList.add("New Item");
        System.out.println("Updated List: " + myList);

        // Set-এ নতুন আইটেম যোগ করা
        mySet.add("New Set Item");
        System.out.println("Updated Set: " + mySet);

        // Map-এ Key-Value যোগ করা
        myMap.put("key3", "value3");
        System.out.println("Updated Map: " + myMap);

        // List থেকে দৈর্ঘ্য 5 এর বেশি এমন আইটেম ফিল্টার করা
        List<String> filteredList = myList.stream().filter(item -> item.length() > 5).toList();
        System.out.println("Filtered List: " + filteredList);
    }
}

Spring Configuration Example

<bean id="myList" class="java.util.ArrayList">
    <constructor-arg>
        <list>
            <value>Spring</value>
            <value>SpEL</value>
            <value>Collection</value>
        </list>
    </constructor-arg>
</bean>

<bean id="mySet" class="java.util.HashSet">
    <constructor-arg>
        <set>
            <value>Apple</value>
            <value>Banana</value>
        </set>
    </constructor-arg>
</bean>

<bean id="myMap" class="java.util.HashMap">
    <constructor-arg>
        <map>
            <entry key="key1" value="value1"/>
            <entry key="key2" value="value2"/>
        </map>
    </constructor-arg>
</bean>

SpEL-এ Collections ম্যানিপুলেশনের সুবিধা

ফিচারবর্ণনা
ডায়নামিক ভ্যালু অ্যাক্সেসSpEL দ্বারা Collection থেকে নির্দিষ্ট উপাদান ডায়নামিকভাবে অ্যাক্সেস করা সম্ভব।
ফিল্টারিংSpEL ব্যবহার করে Collection থেকে শর্তপূর্ণ উপাদান ফিল্টার করা সম্ভব।
অ্যাড, রিমুভ অপারেশনCollection এ নতুন উপাদান যোগ করা বা মুছে ফেলা SpEL দিয়ে করা যায়।
ফ্লেক্সিবিলিটিSpring Beans বা XML কনফিগারেশন ফাইলের মধ্যে SpEL ব্যবহার করা যায়।

Spring Expression Language (SpEL) ব্যবহার করে Collection ম্যানিপুলেশন অত্যন্ত সহজ এবং কার্যকরী। SpEL এর মাধ্যমে লিস্ট, সেট বা ম্যাপে ডেটা ফিল্টার, অ্যাড, রিমুভ বা ম্যানিপুলেট করা সম্ভব, যা Spring অ্যাপ্লিকেশনে ডাইনামিকভাবে কনফিগারেশন বা ডেটা প্রসেসিংয়ের জন্য গুরুত্বপূর্ণ।

Content added By
Promotion

Are you sure to start over?

Loading...