SpEL এর মাধ্যমে Arrays এবং Lists ম্যানিপুলেট করা

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

256

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
Promotion

Are you sure to start over?

Loading...