উদাহরণ সহ Spring Boot এবং Spring Batch প্রজেক্ট তৈরি

Spring Batch এবং Spring Boot Integration - স্প্রিং ব্যাচ (Spring Batch) - Java Technologies

292

Spring Batch একটি শক্তিশালী ফ্রেমওয়ার্ক যা ব্যাচ প্রক্রিয়াকরণে ব্যবহৃত হয়, যেমন বড় পরিমাণ ডেটা প্রক্রিয়া করা, ডেটা রিড এবং রাইট করা, এবং অন্যান্য ব্যাচ ভিত্তিক কাজ। Spring Boot একটি দ্রুত অ্যাপ্লিকেশন তৈরি করার জন্য ডিজাইন করা ফ্রেমওয়ার্ক। Spring Batch এবং Spring Boot একসাথে ব্যবহার করলে আপনি খুব সহজে ব্যাচ প্রক্রিয়াকরণের কাজ করতে পারেন।

এখানে একটি Spring Boot এবং Spring Batch প্রজেক্ট তৈরি করার পুরো প্রক্রিয়া উদাহরণের মাধ্যমে ব্যাখ্যা করা হবে।


1. Spring Boot এবং Spring Batch প্রজেক্ট তৈরি করা

1.1 Spring Initializr ব্যবহার করে প্রজেক্ট তৈরি করা

Spring Initializr দিয়ে Spring Batch এবং Spring Boot প্রজেক্ট তৈরি করা খুবই সহজ।

  1. Spring Initializr ওয়েবসাইটে যান: Spring Initializr
  2. Project হিসেবে Maven Project বা Gradle Project নির্বাচন করুন।
  3. Language হিসেবে Java নির্বাচন করুন।
  4. Spring Boot version নির্বাচন করুন (যেমন: 3.0.0 বা আপনার পছন্দের লেটেস্ট ভার্সন)।
  5. Dependencies হিসেবে Spring Web এবং Spring Batch নির্বাচন করুন।
  6. Generate বাটনে ক্লিক করে ZIP ফাইল ডাউনলোড করুন এবং এটি এক্সট্র্যাক্ট করুন।

এখন আপনার প্রজেক্ট তৈরি হয়ে যাবে এবং আপনি আপনার IDE (যেমন IntelliJ IDEA বা Eclipse) তে এটি ওপেন করতে পারবেন।

1.2 Maven ডিপেনডেন্সি কনফিগারেশন

এখন pom.xml ফাইলে Spring Batch এবং Spring Boot এর জন্য প্রয়োজনীয় ডিপেনডেন্সি কনফিগার করতে হবে।

<dependencies>
    <!-- Spring Boot Starter Web for web functionalities -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Batch dependency -->
    <dependency>
        <groupId>org.springframework.batch</groupId>
        <artifactId>spring-batch-core</artifactId>
    </dependency>

    <!-- Spring Boot Starter Batch for batch support -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-batch</artifactId>
    </dependency>

    <!-- H2 Database for in-memory database (optional, for testing purposes) -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- Spring Boot Starter Test for testing -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

এখানে spring-batch-core Spring Batch এর জন্য প্রয়োজনীয় ডিপেনডেন্সি এবং spring-boot-starter-batch Spring Boot-এ Batch সাপোর্ট যোগ করার জন্য ব্যবহৃত হচ্ছে।

1.3 Spring Batch Configuration

Spring Batch-এ কাজ করার জন্য কিছু কনফিগারেশন সেট করতে হবে। এক্ষেত্রে Job এবং Step কনফিগারেশন করতে হবে।

@Configuration
@EnableBatchProcessing
public class BatchConfig {

    @Autowired
    private JobBuilderFactory jobBuilderFactory;

    @Autowired
    private StepBuilderFactory stepBuilderFactory;

    @Bean
    public Job job(JobCompletionNotificationListener listener, Step step1) {
        return jobBuilderFactory.get("myJob")
                .incrementer(new RunIdIncrementer())
                .listener(listener)
                .start(step1)
                .build();
    }

    @Bean
    public Step step1(ItemReader<MyItem> reader, ItemProcessor<MyItem, MyProcessedItem> processor, ItemWriter<MyProcessedItem> writer) {
        return stepBuilderFactory.get("step1")
                .<MyItem, MyProcessedItem>chunk(10)
                .reader(reader)
                .processor(processor)
                .writer(writer)
                .build();
    }
}

এখানে:

  • @EnableBatchProcessing : Spring Batch সাপোর্ট সক্ষম করতে ব্যবহৃত হয়।
  • Job এবং Step কনফিগার করা হয়েছে, যেখানে step1 হল একটি Step এবং এটি একটি chunk(10) প্রক্রিয়া করবে।

1.4 ItemReader, ItemProcessor এবং ItemWriter

ItemReader ডেটা রিড করতে, ItemProcessor ডেটা প্রক্রিয়া করতে এবং ItemWriter ডেটা লিখতে ব্যবহৃত হয়। নিচে একটি উদাহরণ দেওয়া হলো:

ItemReader

@Bean
public ItemReader<MyItem> reader() {
    // আপনার ডেটা রিড করার লজিক এখানে
    return new MyItemReader();
}

ItemProcessor

@Bean
public ItemProcessor<MyItem, MyProcessedItem> processor() {
    return new MyItemProcessor();
}

ItemWriter

@Bean
public ItemWriter<MyProcessedItem> writer() {
    // ডেটা লেখার লজিক
    return new MyItemWriter();
}

2. Spring Boot Application Class

Spring Boot অ্যাপ্লিকেশন চালানোর জন্য মূল ক্লাস তৈরি করতে হবে, যেটি @SpringBootApplication অ্যনোটেশন দিয়ে চিহ্নিত করা হয়।

@SpringBootApplication
public class BatchApplication {
    public static void main(String[] args) {
        SpringApplication.run(BatchApplication.class, args);
    }
}

এটি Spring Boot অ্যাপ্লিকেশনটি চালু করবে।


3. ব্যাচ প্রসেসিং সম্পাদন করা

Spring Batch-এ ব্যাচ প্রসেসিং সম্পাদন করতে, আমরা একটি Job এবং Step তৈরি করেছি। এখন, ডেটা প্রক্রিয়া করা হবে এবং শেষে সেটি আউটপুট হবে।

  • Job একটি ব্যাচ প্রক্রিয়ায় একাধিক Step থেকে গঠিত হতে পারে।
  • প্রতিটি Step একটি নির্দিষ্ট কাজ যেমন ডেটা রিড, প্রক্রিয়া করা এবং রাইট করার জন্য ব্যবহৃত হয়।
  • Chunk Processing প্যাটার্ন ব্যবহৃত হয়েছে যেখানে ডেটার কিছু অংশ (Chunk) একসাথে রিড, প্রসেস এবং রাইট করা হয়।

3.1 Job Completion Listener

এখানে একটি JobCompletionNotificationListener যুক্ত করা হয়েছে, যা ব্যাচ প্রক্রিয়া শেষ হলে কিছু কাস্টম লজিক প্রয়োগ করতে সাহায্য করবে।

@Component
public class JobCompletionNotificationListener extends JobExecutionListenerSupport {

    @Autowired
    private DataSource dataSource;

    @Override
    public void afterJob(JobExecution jobExecution) {
        if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
            System.out.println("Job completed successfully!");
        } else if (jobExecution.getStatus() == BatchStatus.FAILED) {
            System.out.println("Job failed!");
        }
    }
}

4. ব্যাচ জব চালানো

আপনার অ্যাপ্লিকেশন চালানোর জন্য, নিচের কমান্ডটি ব্যবহার করতে হবে:

4.1 Maven কমান্ড (JAR তৈরি করা)

mvn clean install

এটি target ফোল্ডারে .jar ফাইল তৈরি করবে।

4.2 Spring Boot অ্যাপ্লিকেশন চালানো

java -jar target/my-batch-job.jar

এটি Spring Batch job চালু করবে এবং আপনার প্রক্রিয়া শুরু হবে।


সারাংশ

Spring Boot এবং Spring Batch এর মাধ্যমে একটি শক্তিশালী ব্যাচ প্রসেসিং অ্যাপ্লিকেশন তৈরি করা সম্ভব। আপনি Spring Initializr ব্যবহার করে Spring Batch সহ একটি প্রজেক্ট তৈরি করতে পারেন, তারপর Job, Step, ItemReader, ItemProcessor, এবং ItemWriter কনফিগার করে ব্যাচ প্রক্রিয়া সম্পন্ন করতে পারেন। Spring Batch ব্যবহারের মাধ্যমে আপনি বড় পরিমাণে ডেটা প্রক্রিয়া, বিশ্লেষণ এবং রাইট করার কাজ সহজভাবে এবং দক্ষতার সাথে করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...