SpEL এর মাধ্যমে Bean Methods Access করা

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

277

Spring Expression Language (SpEL) দিয়ে Spring Bean-এর মেথড অ্যাক্সেস করা সম্ভব। SpEL এর মাধ্যমে Bean এর প্রপার্টি এক্সপ্রেসন ছাড়াও, Bean-এ থাকা মেথডগুলোও ডাইনামিকভাবে কল করা যায়। SpEL এর মাধ্যমে মেথড অ্যাক্সেস করার জন্য T(), #, এবং () সিনট্যাক্স ব্যবহার করা হয়।

Bean Methods Access-এর মূল কনসেপ্ট

  • T(): এটি Java ক্লাসের রেফারেন্স বা মেথড কল করতে ব্যবহৃত হয়।
  • #: Spring Bean অ্যাক্সেস করতে ব্যবহৃত হয়।
  • (): মেথড কলের জন্য ব্যবহৃত হয়।

Spring Bean-এর মেথডগুলি SpEL দিয়ে অ্যাক্সেস করতে, প্রথমে Bean-এ উপস্থিত মেথডটির নাম এবং প্রয়োজনীয় প্যারামিটারগুলোর সাথে SpEL এক্সপ্রেশন তৈরি করতে হয়।


SpEL এর মাধ্যমে Bean Methods Access এর উদাহরণ

১. Spring Bean তৈরি:

ধরা যাক, একটি Employee Bean আছে, যেখানে একটি মেথড getFullName রয়েছে যা প্রথম নাম এবং শেষ নাম নিয়ে পুরো নাম রিটার্ন করবে।

@Component
public class Employee {

    private String firstName;
    private String lastName;

    // Constructor, Getters, Setters

    public String getFullName(String firstName, String lastName) {
        return firstName + " " + lastName;
    }
}

২. SpEL এর মাধ্যমে Bean Method Call:

Spring XML কনফিগারেশনে SpEL ব্যবহার করে Bean-এ থাকা মেথড কল করা যেতে পারে। উদাহরণস্বরূপ, আমরা Employee Bean এর getFullName মেথড কল করতে পারি।

<bean id="employee" class="com.example.Employee">
    <property name="firstName" value="John"/>
    <property name="lastName" value="Doe"/>
</bean>

<bean id="employeeService" class="com.example.EmployeeService">
    <property name="fullName" value="#{employee.getFullName(employee.firstName, employee.lastName)}"/>
</bean>

এখানে, employee.getFullName(employee.firstName, employee.lastName) SpEL এক্সপ্রেশন ব্যবহার করে Employee Bean-এর getFullName মেথড কল করা হচ্ছে।

৩. SpEL এ Method Call With Arguments:

SpEL এ মেথড কল করার সময় প্যারামিটার পাস করতে হলে সেগুলোর মান নির্দিষ্ট করা হয়।

<bean id="employeeService" class="com.example.EmployeeService">
    <property name="fullName" value="#{employee.getFullName('John', 'Doe')}"/>
</bean>

এখানে, getFullName মেথডে সরাসরি "John" এবং "Doe" প্যারামিটার পাস করা হচ্ছে।

৪. SpEL Annotation এ Method Call:

Spring অ্যানোটেশন-এ SpEL ব্যবহার করা হয় সাধারণত @Value অ্যানোটেশন ব্যবহার করে। উদাহরণস্বরূপ:

@Component
public class EmployeeService {

    @Autowired
    private Employee employee;

    @Value("#{employee.getFullName('John', 'Doe')}")
    private String fullName;

    public String getFullName() {
        return fullName;
    }
}

এখানে EmployeeService Bean-এর মধ্যে SpEL এর মাধ্যমে Employee Bean-এর getFullName মেথড কল করা হয়েছে।


SpEL-এ Bean Methods Access করার অন্যান্য উদাহরণ

১. মেথড কল সহ Bean Property Access

<bean id="employee" class="com.example.Employee">
    <property name="firstName" value="Jane"/>
    <property name="lastName" value="Smith"/>
</bean>

<bean id="greetingService" class="com.example.GreetingService">
    <property name="greetingMessage" value="#{employee.getFullName(employee.firstName, employee.lastName)}"/>
</bean>

এখানে, GreetingService Bean-এ employee.getFullName() মেথড কল করা হচ্ছে, যা employee.firstName এবং employee.lastName এর মান ব্যবহার করবে।

২. Bean Method With No Arguments

<bean id="employee" class="com.example.Employee">
    <property name="firstName" value="John"/>
    <property name="lastName" value="Doe"/>
</bean>

<bean id="employeeService" class="com.example.EmployeeService">
    <property name="greetingMessage" value="#{employee.getFullName()}"/>
</bean>

এখানে getFullName() মেথড কোন প্যারামিটার ছাড়া কল হচ্ছে, যা Employee Bean-এর firstName এবং lastName প্রপার্টি ব্যবহার করবে।


SpEL-এ Bean Methods Access করার সুবিধা

  1. ডাইনামিক কনফিগারেশন: SpEL ব্যবহার করে Bean মেথডের মাধ্যমে ডাইনামিকভাবে তথ্য অ্যাক্সেস করা যায়।
  2. সহজ এক্সপ্রেশন: Bean মেথড কল এবং প্রপার্টি অ্যাক্সেস SpEL ব্যবহার করে সহজে করা সম্ভব হয়।
  3. কমপ্লেক্স লজিক: SpEL ব্যবহার করে Bean-এর মেথডে যুক্ত করা লজিক ও কন্ডিশনাল স্টেটমেন্ট সহজে প্রয়োগ করা যায়।

Spring Expression Language (SpEL) Bean মেথড অ্যাক্সেসের মাধ্যমে ডাইনামিকভাবে মেথড কল এবং প্রপার্টি এক্সপ্রেসন তৈরি করার ক্ষমতা প্রদান করে, যা Spring অ্যাপ্লিকেশনকে আরও নমনীয় এবং কনফিগারেশনসমৃদ্ধ করে তোলে।


Content added By
Promotion

Are you sure to start over?

Loading...