init-method এবং destroy-method কনফিগারেশন

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

291

Spring Framework এ init-method এবং destroy-method দুটি গুরুত্বপূর্ণ কনফিগারেশন যা Spring Beans-এর ইনিশিয়ালাইজেশন এবং ডেস্ট্রাকশন প্রক্রিয়া কাস্টমাইজ করতে ব্যবহৃত হয়।

  • init-method: এই মেথডটি Bean তৈরি হওয়ার পর এবং Bean এর প্রপার্টি ইনজেক্ট হওয়ার পর কল করা হয়। এটি সাধারণত Bean এর প্রাথমিক কনফিগারেশন বা অন্য কোনও প্রয়োজনীয় ইনিশিয়াল সেটআপ করতে ব্যবহৃত হয়।
  • destroy-method: এই মেথডটি Bean destroy হওয়ার আগে কল করা হয়, যা Bean ধ্বংস হওয়ার আগে কিছু পরিষ্কারের কাজ (যেমন রিসোর্স রিলিজ) সম্পন্ন করতে সহায়তা করে।

এগুলি Spring Bean এর lifecycle পরিচালনা করতে সাহায্য করে এবং Spring Container দ্বারা পরিচালিত হয়।


init-method এবং destroy-method কনফিগারেশন এর ব্যবহার

Spring এ init-method এবং destroy-method ব্যবহার করার দুটি প্রধান পদ্ধতি হল:

  1. XML কনফিগারেশন ফাইলের মাধ্যমে
  2. Annotation ভিত্তিক কনফিগারেশন

১. XML কনফিগারেশন ফাইলের মাধ্যমে init-method এবং destroy-method কনফিগারেশন

Spring XML কনফিগারেশন ফাইলে init-method এবং destroy-method ব্যবহার করে Bean এর ইনিশিয়ালাইজেশন এবং ডেস্ট্রাকশন মেথড নির্ধারণ করা হয়।

উদাহরণ:

ধরা যাক, আমাদের একটি Employee ক্লাস রয়েছে এবং আমরা Bean এর ইনিশিয়ালাইজেশন এবং ডেস্ট্রাকশন প্রক্রিয়া কাস্টমাইজ করতে চাই।

Employee.java

public class Employee {

    private String name;

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

    // Custom initialization method
    public void init() {
        System.out.println("Employee Bean Initialized: " + name);
    }

    // Custom destroy method
    public void cleanup() {
        System.out.println("Employee Bean Destroyed: " + name);
    }
}

Spring Bean Configuration (XML)

<bean id="employee" class="com.example.Employee" init-method="init" destroy-method="cleanup">
    <property name="name" value="John Doe"/>
</bean>

এখানে, init-method="init" এবং destroy-method="cleanup" দ্বারা Spring Bean এর ইনিশিয়ালাইজেশন এবং ডেস্ট্রাকশন মেথড কনফিগার করা হয়েছে। যখন Employee Bean ইনস্ট্যান্সিয়েট হবে, তখন init() মেথডটি কল হবে এবং যখন Bean Destroy হবে, তখন cleanup() মেথডটি কল হবে।

Spring Application Context

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
Employee employee = (Employee) context.getBean("employee");
((ClassPathXmlApplicationContext) context).close();

এখানে, close() মেথডটি Spring Context-এর ব্যবহৃত Bean গুলি ডেস্ট্রয় করবে এবং cleanup() মেথডটি কল হবে।


২. Annotation ভিত্তিক কনফিগারেশন

Spring 2.5 এর পর, @PostConstruct এবং @PreDestroy অ্যানোটেশনগুলো ব্যবহৃত হয় Bean এর ইনিশিয়ালাইজেশন এবং ডেস্ট্রাকশন মেথড নির্ধারণ করতে। এগুলি Java EE এর একটি অংশ, তবে Spring Framework এ এর ব্যবহার অত্যন্ত জনপ্রিয়।

উদাহরণ:

Employee.java (Annotation-based)

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

public class Employee {

    private String name;

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

    // PostConstruct annotation for initialization
    @PostConstruct
    public void init() {
        System.out.println("Employee Bean Initialized: " + name);
    }

    // PreDestroy annotation for destruction
    @PreDestroy
    public void cleanup() {
        System.out.println("Employee Bean Destroyed: " + name);
    }
}

Spring Bean Configuration (Java-based Configuration)

@Configuration
@ComponentScan(basePackages = "com.example")
public class AppConfig {
    // Java-based configuration
}

Spring Application Context

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
Employee employee = context.getBean(Employee.class);
context.close();

এখানে, @PostConstruct অ্যানোটেশনটি Bean ইনিশিয়ালাইজ হওয়ার পর init() মেথড কল করবে এবং @PreDestroy অ্যানোটেশনটি Bean ডেস্ট্রয় হওয়ার আগে cleanup() মেথড কল করবে।


init-method এবং destroy-method এর সুবিধা

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

সারাংশ

Spring Framework-এ init-method এবং destroy-method কনফিগারেশন Spring Beans এর ইনিশিয়ালাইজেশন এবং ডেস্ট্রাকশন প্রক্রিয়া কাস্টমাইজ করতে সহায়ক। XML কনফিগারেশন অথবা Annotation-based configuration ব্যবহার করে আপনি Bean ইনিশিয়ালাইজ এবং ডেস্ট্রাকশন মেথড নির্ধারণ করতে পারেন, যা আপনাকে Spring Beans ব্যবস্থাপনায় আরও নমনীয়তা এবং কাস্টমাইজেশন প্রদান করে। @PostConstruct এবং @PreDestroy অ্যানোটেশনগুলোর মাধ্যমে Java-based কনফিগারেশনেও ইনিশিয়ালাইজেশন এবং ক্লিনআপ মেথড প্রয়োগ করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...