Spring Bean Reference করা

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

308

Spring Expression Language (SpEL) এর মাধ্যমে Spring Bean গুলোর রেফারেন্স করতে বা তাদের অ্যাক্সেস করতে # সিম্বল ব্যবহার করা হয়। SpEL ব্যবহারের মাধ্যমে Spring কনটেইনারের মধ্যে বিদ্যমান বিভিন্ন Bean-এর মধ্যে একে অপরকে রেফারেন্স করা সম্ভব। এটি Bean Injection, Bean Method Access এবং Bean Property Access এর ক্ষেত্রে খুবই কার্যকরী হয়।

SpEL-এর মাধ্যমে Spring Bean রেফারেন্স করা সাধারণত XML কনফিগারেশন বা অ্যানোটেশন-এ ব্যবহার করা হয়, যা Spring Framework-এ ডাইনামিক ডেটা অ্যাক্সেস এবং কনফিগারেশন ইনজেকশন সহজ করে।


Spring Bean Reference করার সিনট্যাক্স

Spring Bean-এর রেফারেন্স করতে SpEL এ সাধারণত #{} সিম্বল ব্যবহার করা হয়। Bean রেফারেন্সের জন্য # সিম্বল ব্যবহার করা হয়, এবং Bean নামটি সেখানে উল্লেখ করা হয়।

#{beanName.property}

এখানে beanName হলো Spring কনটেইনারে ডিফাইন করা Bean-এর নাম এবং property হলো ওই Bean-এর প্রপার্টি যা আপনি রেফারেন্স করতে চান।


Spring Bean Reference করার উদাহরণ

১. Spring XML কনফিগারেশনে Bean Reference করা

ধরা যাক, আমাদের দুটি Bean আছে - Employee এবং EmployeeService। এখানে আমরা EmployeeService Bean-এর মধ্যে Employee Bean রেফারেন্স করব SpEL ব্যবহার করে।

Employee Bean:
@Component
public class Employee {
    private String name = "John Doe";
    
    public String getName() {
        return name;
    }
}
EmployeeService Bean:
@Component
public class EmployeeService {
    private String employeeName;

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public String getEmployeeName() {
        return employeeName;
    }
}
Spring XML কনফিগারেশন (SpEL ব্যবহার করে Bean রেফারেন্স):
<bean id="employee" class="com.example.Employee" />
<bean id="employeeService" class="com.example.EmployeeService">
    <property name="employeeName" value="#{employee.name}" />
</bean>

এখানে, employeeService Bean-এর employeeName প্রপার্টিতে employee Bean এর name প্রপার্টির মান সেট করা হয়েছে।

২. SpEL ব্যবহার করে Bean Method Call

SpEL ব্যবহার করে আপনি Bean-এর মেথডও কল করতে পারেন। নিচের উদাহরণে EmployeeService Bean-এর মধ্যে Employee Bean-এর মেথড কল করা হয়েছে।

Spring XML কনফিগারেশন (Bean Method Call):
<bean id="employee" class="com.example.Employee" />
<bean id="employeeService" class="com.example.EmployeeService">
    <property name="employeeName" value="#{employee.getName()}" />
</bean>

এখানে employeeService Bean-এ employee.getName() মেথড কল করা হচ্ছে, যাতে employee Bean-এর name প্রপার্টির মান পাওয়া যায়।


Spring Bean Reference করার অ্যানোটেশন উদাহরণ

Spring অ্যানোটেশন ব্যবহারের মাধ্যমে SpEL ব্যবহার করা যেতে পারে, যেখানে @Value অ্যানোটেশন দিয়ে Bean রেফারেন্স করা হয়।

১. Bean Method Call with SpEL using @Value Annotation:

@Component
public class EmployeeService {

    @Autowired
    private Employee employee;

    @Value("#{employee.getName()}")
    private String employeeName;

    public String getEmployeeName() {
        return employeeName;
    }
}

এখানে employee.getName() SpEL ব্যবহার করে Employee Bean-এর getName() মেথড কল করা হয়েছে।

২. Spring Bean Reference using @Value Annotation:

@Component
public class EmployeeService {

    @Autowired
    private Employee employee;

    @Value("#{employee.name}")
    private String employeeName;

    public String getEmployeeName() {
        return employeeName;
    }
}

এখানে employee.name SpEL ব্যবহার করে Employee Bean-এর name প্রপার্টি রেফারেন্স করা হয়েছে।


Spring Bean Reference এর সুবিধা

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

SpEL এর মাধ্যমে Bean Reference করার অন্যান্য উদাহরণ

১. Map বা Collection Reference:

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

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

২. SpEL এবং Collection Access:

@Component
public class EmployeeService {

    @Value("#{employeeList[0].name}")
    private String firstEmployeeName;

    public String getFirstEmployeeName() {
        return firstEmployeeName;
    }
}

এখানে, employeeList নামক লিস্ট থেকে প্রথম Employee Bean-এর name রেফারেন্স করা হচ্ছে।


Spring Expression Language (SpEL) Spring Bean রেফারেন্স করার ক্ষেত্রে খুবই কার্যকরী, কারণ এটি Spring কনটেইনারের মধ্যে Bean-এর মধ্যে সম্পর্ক এবং ডেটা অ্যাক্সেস সহজ করে। SpEL-এ Bean রেফারেন্স এবং Bean-এর মেথড বা প্রপার্টি এক্সপ্রেসন ব্যবহারের মাধ্যমে আপনি Spring কনফিগারেশন এবং অ্যানোটেশন কোডকে আরও ডাইনামিক এবং নমনীয় করতে পারেন।


Content added By
Promotion

Are you sure to start over?

Loading...