Bean কি এবং এর ভূমিকা

Spring Bean এবং IoC Container - স্প্রিং ডিপেনডেন্সি ইনজেকশন (ডিআই) (Spring Dependency Injection) - Java Technologies

385

স্প্রিং ফ্রেমওয়ার্কে ডিপেনডেন্সি ইনজেকশন (Dependency Injection - DI) একটি কোর কনসেপ্ট, যা স্প্রিং কনটেইনারের মাধ্যমে অবজেক্টগুলি তৈরি এবং ইনজেক্ট করার প্রক্রিয়া। এই প্রক্রিয়া কোডের নমনীয়তা, টেস্টেবিলিটি এবং মডুলারিটি বাড়ানোর জন্য ব্যবহৃত হয়। Bean হলো স্প্রিং কনটেইনারে পরিচালিত অবজেক্ট যা ডিপেনডেন্সি ইনজেকশন দ্বারা ব্যবস্থাপনা করা হয়।


Bean কী?

স্প্রিং কনটেইনারে যে অবজেক্টটি তৈরি ও ম্যানেজ করা হয়, তাকে Bean বলা হয়। একটি Bean সাধারণত একটি ক্লাসের ইন্সট্যান্স, যা স্প্রিং কনটেইনারের মাধ্যমে ডিপেনডেন্সি ইনজেকশন প্রক্রিয়া দ্বারা ইনজেক্ট করা হয় এবং এটি স্প্রিং ফ্রেমওয়ার্কের ব্যবস্থাপনা অধীনে থাকে।

স্প্রিং কনটেইনারে Beans সাধারণত XML কনফিগারেশন, অ্যনোটেশন, অথবা Java-based Configuration এর মাধ্যমে রেজিস্টার করা হয়।


Bean এর ভূমিকা

Bean স্প্রিং কনটেইনারের মধ্যে একটি অবজেক্ট যা তৈরি হয় এবং পরিচালিত হয়। এর ভূমিকা অনেক গুরুত্বপূর্ণ:

  1. ডিপেনডেন্সি ইনজেকশন: স্প্রিং কনটেইনার Bean গুলি তৈরি করে এবং তাদের মধ্যে ডিপেনডেন্সি ইনজেক্ট করে, যাতে অবজেক্টগুলোর মধ্যে সম্পর্ক এবং ইন্টারঅ্যাকশন সহজে পরিচালিত হয়।
  2. লাইফ সাইকেল ম্যানেজমেন্ট: স্প্রিং কনটেইনার Beans এর লাইফ সাইকেল পরিচালনা করে। Bean এর তৈরি, স্টার্ট, ডেস্ট্রয় এবং অন্যান্য স্টেটস স্প্রিং কনটেইনার ম্যানেজ করে।
  3. কনফিগারেশন এবং প্রোপার্টি ইনজেকশন: স্প্রিং কনটেইনার Beans এর কনফিগারেশন এবং প্রোপার্টি ইনজেক্ট করে। এক্সটার্নাল কনফিগারেশন (যেমন application.properties অথবা XML) ব্যবহার করে Beans কনফিগার করা যায়।

স্প্রিং কনটেইনারে Bean কিভাবে তৈরি হয়?

স্প্রিং কনটেইনারে Beans তৈরি এবং ম্যানেজ করার জন্য বিভিন্ন কৌশল ব্যবহৃত হয়:

  1. XML কনফিগারেশন: স্প্রিং কনটেইনারে Beans কনফিগার করার পুরনো পদ্ধতি।
  2. অ্যানোটেশন কনফিগারেশন: নতুন পদ্ধতি যেখানে স্প্রিং অ্যানোটেশন ব্যবহার করে Bean কনফিগার করা হয়।
  3. Java-based Configuration: স্প্রিং 3 এর পরে Java কোডের মাধ্যমে কনফিগারেশন করা যেতে পারে, যেখানে @Configuration এবং @Bean অ্যানোটেশন ব্যবহার করা হয়।

উদাহরণ সহ Bean এর ব্যবহার

১. XML কনফিগারেশন দ্বারা Bean তৈরি

<!-- Spring configuration file (beans.xml) -->
<bean id="employee" class="com.example.Employee">
    <property name="name" value="John Doe"/>
    <property name="department" value="Engineering"/>
</bean>

এখানে, employee Bean একটি Employee ক্লাসের ইনস্ট্যান্স, এবং এর প্রোপার্টি name এবং department স্প্রিং কনটেইনার দ্বারা ইনজেক্ট করা হয়েছে।

২. অ্যানোটেশন কনফিগারেশন দ্বারা Bean তৈরি

@Component
public class Employee {
    private String name;
    private String department;

    // Getter and Setter methods
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }
}
@Configuration
@ComponentScan("com.example")
public class AppConfig {
    // Configuration class to scan and create Beans
}

এখানে, @Component অ্যানোটেশন দ্বারা Employee ক্লাসটিকে Bean হিসেবে চিহ্নিত করা হয়েছে। @ComponentScan অ্যানোটেশন দ্বারা স্প্রিং কনটেইনারকে com.example প্যাকেজে থাকা সকল Bean এর জন্য স্ক্যান করতে বলা হয়েছে।

৩. Java-based Configuration দ্বারা Bean তৈরি

@Configuration
public class AppConfig {
    
    @Bean
    public Employee employee() {
        Employee employee = new Employee();
        employee.setName("John Doe");
        employee.setDepartment("Engineering");
        return employee;
    }
}

এখানে, @Configuration এবং @Bean অ্যানোটেশন ব্যবহার করে Employee Bean তৈরি করা হয়েছে। @Bean মেথড স্প্রিং কনটেইনারকে এই মেথডটির রিটার্ন ভ্যালু হিসেবে একটি Bean তৈরি করতে বলে।


Bean লাইফ সাইকেল

স্প্রিং Bean এর লাইফ সাইকেল স্প্রিং কনটেইনার দ্বারা পরিচালিত হয়। এটি Bean এর তৈরি, প্রাথমিককরণ, ব্যবহারের সময় এবং ধ্বংসের সময়ের মধ্যে বিভিন্ন পর্যায়ে কাজ করে।

  1. Bean Creation: স্প্রিং কনটেইনার Bean তৈরি করে।
  2. Dependency Injection: Bean এর প্রোপার্টি বা ডিপেনডেন্সি ইনজেক্ট করা হয়।
  3. Post-Initialization: Bean তৈরি হওয়ার পর কোনো @PostConstruct বা init-method ব্যবহৃত হতে পারে।
  4. Bean Destruction: Bean ধ্বংসের সময়, কোনো @PreDestroy বা destroy-method কল হতে পারে।

Bean এর ভূমিকা স্প্রিং ডিপেনডেন্সি ইনজেকশনে

  1. ডিপেনডেন্সি ইনজেকশন: স্প্রিং ডিপেনডেন্সি ইনজেকশন (DI) প্যাটার্ন অনুসরণ করে, স্প্রিং কনটেইনার একটি Bean এর প্রয়োজনীয় ডিপেনডেন্সি ইনজেক্ট করে। এর মাধ্যমে অবজেক্টের মধ্যে লোশ-কপলিং (loose coupling) তৈরি হয়, অর্থাৎ ডিপেনডেন্সিগুলি Bean এর মধ্যে সরাসরি না হয়ে, স্প্রিং কনটেইনার দ্বারা ইনজেক্ট করা হয়।
  2. কনফিগারেশন ম্যানেজমেন্ট: স্প্রিং কনটেইনার Bean গুলির কনফিগারেশন ম্যানেজ করে। এটি প্রোপার্টি ফাইল বা XML ফাইলের মাধ্যমে Bean গুলির মান নির্ধারণ করতে পারে।
  3. লাইফ সাইকেল ম্যানেজমেন্ট: স্প্রিং কনটেইনার Bean এর লাইফ সাইকেল পরিচালনা করে, যেমন Bean তৈরি, প্রাথমিককরণ, ধ্বংস ইত্যাদি।

উপসংহার

Bean স্প্রিং কনটেইনারে ব্যবস্থাপনা করা অবজেক্ট, যা স্প্রিং ফ্রেমওয়ার্কের মূল উপাদান। ডিপেনডেন্সি ইনজেকশনের মাধ্যমে Bean গুলির মধ্যে সম্পর্ক তৈরি করা হয় এবং কোডের নমনীয়তা এবং পুনঃব্যবহারযোগ্যতা বাড়ানো হয়। স্প্রিং কনটেইনার Bean এর লাইফ সাইকেল পরিচালনা করে এবং ডিপেনডেন্সি ইনজেকশনের মাধ্যমে অবজেক্টগুলোকে স্বয়ংক্রিয়ভাবে ইন্সট্যান্সিয়েট এবং ইনজেক্ট করে। স্প্রিং Bean কনফিগারেশন বিভিন্ন পদ্ধতিতে করা যায় যেমন XML, অ্যানোটেশন, এবং Java-based Configuration।

Content added By
Promotion

Are you sure to start over?

Loading...