SpEL এ Custom Function কিভাবে তৈরি করা যায়

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

281

স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (SpEL) একটি শক্তিশালী টুল যা স্প্রিং অ্যাপ্লিকেশনের মধ্যে এক্সপ্রেশন ইভ্যালুয়েশন এবং কনফিগারেশন ফাইলগুলোর মাধ্যমে ডাইনামিকভাবে ডেটা প্রক্রিয়াকরণ এবং কাস্টম লজিক বাস্তবায়ন করতে সাহায্য করে। স্প্রিং ক্লাস বা Custom Functions ব্যবহার করে স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজে কাস্টম ফাংশন তৈরি করা সম্ভব। এগুলি সাধারণত নির্দিষ্ট কার্যক্ষমতা যেমন মেথড বা কাস্টম লজিক হিসেবে ব্যবহার করা হয়।


কাস্টম ফাংশন তৈরি করার জন্য প্রয়োজনীয় পদক্ষেপ

  1. Custom Function Class তৈরি করা।
  2. Custom Function কে স্প্রিং কনটেইনারে রেজিস্টার করা।
  3. SpEL এ Custom Function ব্যবহার করা।

১. Custom Function Class তৈরি করা

প্রথমে, আপনাকে একটি কাস্টম ফাংশন ক্লাস তৈরি করতে হবে যেটি সেই ফাংশনের কার্যক্রম সঞ্চালন করবে। এই ক্লাসে একটি পাবলিক মেথড থাকবে যা এক্সপ্রেশন ইভ্যালুয়েশন করার সময় কল করা হবে।

উদাহরণ: কাস্টম ফাংশন ক্লাস তৈরি করা

public class MyCustomFunctions {

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

    public int addNumbers(int num1, int num2) {
        return num1 + num2;
    }
}

এখানে, greet() ফাংশন একটি নাম ইনপুট নিয়ে একটি শুভেচ্ছা বার্তা তৈরি করছে এবং addNumbers() দুটি সংখ্যার যোগফল রিটার্ন করছে।


২. Custom Function কে স্প্রিং কনটেইনারে রেজিস্টার করা

স্প্রিং কনটেইনারে কাস্টম ফাংশন রেজিস্টার করার জন্য MethodInvokingFactoryBean ব্যবহার করা হয়। এর মাধ্যমে আমরা ফাংশনগুলোকে SpEL এক্সপ্রেশন মাধ্যমে কল করতে পারি।

উদাহরণ: Custom Function রেজিস্টার করা

@Configuration
public class AppConfig {

    @Bean
    public MyCustomFunctions myCustomFunctions() {
        return new MyCustomFunctions();
    }

    @Bean
    public MethodInvokingFactoryBean methodInvokingFactoryBean() {
        MethodInvokingFactoryBean factoryBean = new MethodInvokingFactoryBean();
        factoryBean.setTargetObject(myCustomFunctions());
        factoryBean.setTargetMethod("greet");
        return factoryBean;
    }
}

এখানে, myCustomFunctions() Bean তৈরি করা হয়েছে এবং এটি MethodInvokingFactoryBean এর মাধ্যমে greet() মেথডে রেফারেন্স করছে। এখন, স্প্রিং কনটেইনারে greet মেথডটি ব্যবহারযোগ্য।


৩. SpEL এ Custom Function ব্যবহার করা

স্প্রিং কনটেইনারে রেজিস্টার করা কাস্টম ফাংশনটি SpEL এক্সপ্রেশন ব্যবহার করে কল করা যেতে পারে।

উদাহরণ: SpEL এ Custom Function ব্যবহার করা

@Component
public class GreetingService {

    @Value("#{myCustomFunctions.greet('John')}")
    private String greetingMessage;

    @Value("#{myCustomFunctions.addNumbers(5, 3)}")
    private int sum;

    public String getGreetingMessage() {
        return greetingMessage;
    }

    public int getSum() {
        return sum;
    }
}

এখানে, greet('John') SpEL এক্সপ্রেশনটি স্প্রিং কনটেইনারে রেজিস্টার করা greet মেথডকে কল করবে এবং "Hello, John!" বার্তা রিটার্ন করবে। একইভাবে, addNumbers(5, 3) ফাংশন কল করবে এবং 8 রিটার্ন করবে।


৪. কাস্টম ফাংশন ব্যবহার করার সময় আর্গুমেন্ট পাস করা

SpEL কাস্টম ফাংশনগুলোতে multiple arguments পাস করা যায়। আপনি সহজেই SpEL এক্সপ্রেশন এর মাধ্যমে কাস্টম ফাংশন কল করতে পারেন।

উদাহরণ: আর্গুমেন্ট পাস করা

@Value("#{myCustomFunctions.addNumbers(10, 15)}")
private int sumOfNumbers;

এখানে, addNumbers(10, 15) ফাংশন কল করছে এবং আউটপুট হিসেবে 25 রিটার্ন করবে।


৫. SpEL কাস্টম ফাংশন ব্যবহার করার জন্য ফাংশন নাম পরিবর্তন করা

যদি আপনি MethodInvokingFactoryBean এর মাধ্যমে একটি কাস্টম ফাংশন তৈরি করেন, তবে আপনি চাইলে targetMethod এর নাম পরিবর্তন করে অন্য কোন মেথডও কল করতে পারেন।

উদাহরণ: targetMethod পরিবর্তন করা

@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean() {
    MethodInvokingFactoryBean factoryBean = new MethodInvokingFactoryBean();
    factoryBean.setTargetObject(myCustomFunctions());
    factoryBean.setTargetMethod("addNumbers");  // targetMethod name changed
    return factoryBean;
}

এখানে, addNumbers মেথডকে স্প্রিং কনটেইনারের মাধ্যমে SpEL এক্সপ্রেশন থেকে কল করা যাবে।


উপসংহার

স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (SpEL) এর মাধ্যমে কাস্টম ফাংশন তৈরি করে বিভিন্ন লজিক্যাল এবং গাণিতিক অপারেশনগুলোকে সহজভাবে সম্পাদন করা যায়। কাস্টম ফাংশন তৈরি এবং স্প্রিং কনটেইনারে রেজিস্টার করার মাধ্যমে SpEL এক্সপ্রেশন ব্যবহার করে যেকোনো মেথড বা কার্যক্রম ডাইনামিকভাবে এক্সিকিউট করা সম্ভব। এর মাধ্যমে কোড আরো নমনীয় এবং কনফিগারেবল হয়ে ওঠে, যা অ্যাপ্লিকেশন ডেভেলপমেন্টে কার্যকরী ভূমিকা পালন করে।


Content added By
Promotion

Are you sure to start over?

Loading...