স্প্রিং ব্যাচ (Spring Batch) হল একটি শক্তিশালী ফ্রেমওয়ার্ক যা বড় পরিমাণে ডেটা প্রোসেসিং এবং ব্যাচ অপারেশন পরিচালনা করতে ব্যবহৃত হয়। এটি একাধিক স্টেপ (steps), জব (jobs), এবং টাস্ক (tasks) ব্যবস্থাপনা করে এবং ডেটা প্রসেসিংয়ের কাজগুলো সুষ্ঠুভাবে সম্পাদন করতে সহায়তা করে। স্প্রিং ব্যাচে আপনাকে ব্যাচ প্রসেসিং কনফিগারেশন এবং বাস্তবায়ন করতে হয়।
এখানে আমরা দেখব কীভাবে Eclipse এবং IntelliJ IDEA তে Spring Batch প্রজেক্ট সেটআপ করা যায়।
Eclipse তে Spring Batch প্রজেক্ট সেটআপ
১. Eclipse IDE ইনস্টল করা
Eclipse IDE যদি আপনার কম্পিউটারে ইনস্টল না থাকে, তবে Eclipse Download থেকে Eclipse IDE ডাউনলোড করে ইনস্টল করুন। ইনস্টল হয়ে গেলে Eclipse ওপেন করুন এবং Workspace নির্বাচন করুন।
২. Spring Tools 4 প্লাগইন ইনস্টল করা
স্প্রিং ব্যাচ প্রজেক্ট তৈরি করতে Spring Tools 4 প্লাগইনটি ইনস্টল করা প্রয়োজন।
- Eclipse ওপেন করুন।
- Help মেনু থেকে Eclipse Marketplace সিলেক্ট করুন।
- সার্চ বক্সে Spring Tools টাইপ করুন এবং Spring Tools 4 ইনস্টল করুন।
- ইনস্টলেশনের পর Eclipse রিস্টার্ট করুন।
৩. Spring Batch প্রজেক্ট তৈরি করা
- File > New > Spring Starter Project নির্বাচন করুন।
- প্রজেক্টের নাম, গ্রুপ, আর্টিফ্যাক্ট, এবং ডিপেনডেন্সি নির্বাচন করুন।
- Group:
com.example - Artifact:
batchdemo
- Group:
- ডিপেনডেন্সি হিসেবে Spring Batch নির্বাচন করুন। আপনি Spring Web এবং Spring Data JPA যদি প্রয়োজন মনে করেন, তা-ও যোগ করতে পারেন।
- প্রজেক্ট তৈরি হওয়ার পর, Eclipse আপনাকে স্প্রিং ব্যাচের জন্য প্রয়োজনীয় কনফিগারেশন ফাইল এবং ক্লাস তৈরি করে দিবে।
৪. Spring Batch কনফিগারেশন
application.properties ফাইলে স্প্রিং ব্যাচের জন্য কনফিগারেশন যোগ করুন:
spring.batch.job.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
৫. Spring Batch Job এবং Step কনফিগার করা
এখন, একটি সিম্পল স্প্রিং ব্যাচ জব এবং স্টেপ তৈরি করা হবে।
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.batch.core.launch.support.RunIdIncrementer;
import org.springframework.batch.item.ItemProcessor;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemWriter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class BatchConfig {
@Bean
public Job exampleJob(JobBuilderFactory jobBuilderFactory, StepBuilderFactory stepBuilderFactory) {
return jobBuilderFactory.get("exampleJob")
.incrementer(new RunIdIncrementer())
.flow(exampleStep(stepBuilderFactory))
.end()
.build();
}
@Bean
public Step exampleStep(StepBuilderFactory stepBuilderFactory) {
return stepBuilderFactory.get("exampleStep")
.<String, String>chunk(10)
.reader(itemReader())
.processor(itemProcessor())
.writer(itemWriter())
.build();
}
@Bean
public ItemReader<String> itemReader() {
return new CustomItemReader();
}
@Bean
public ItemProcessor<String, String> itemProcessor() {
return new CustomItemProcessor();
}
@Bean
public ItemWriter<String> itemWriter() {
return new CustomItemWriter();
}
}
এখানে CustomItemReader, CustomItemProcessor, এবং CustomItemWriter আপনার নিজস্ব কাস্টম ক্লাস যা ডেটা রিড, প্রসেস এবং রাইট করবে।
৬. Spring Batch Job রান করা
SpringBootApplication ক্লাসে JobLauncher ব্যবহার করে ব্যাচ জব রান করতে পারেন।
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.batch.core.launch.support.RunIdIncrementer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class BatchApplication {
@Autowired
private JobLauncher jobLauncher;
@Autowired
private Job exampleJob;
public static void main(String[] args) {
SpringApplication.run(BatchApplication.class, args);
}
@Bean
public CommandLineRunner run() {
return args -> {
jobLauncher.run(exampleJob, new JobParameters());
};
}
}
এখন আপনি অ্যাপ্লিকেশন চালিয়ে ব্যাচ জব রান করতে পারেন।
IntelliJ IDEA তে Spring Batch প্রজেক্ট সেটআপ
১. IntelliJ IDEA ইনস্টল করা
IntelliJ IDEA ডাউনলোড ও ইনস্টল করতে IntelliJ IDEA Download থেকে ইনস্টলার ডাউনলোড করুন। ইনস্টল হয়ে গেলে IntelliJ IDEA ওপেন করুন।
২. Spring Initializr ব্যবহার করা
- File > New > Project সিলেক্ট করুন।
- Spring Initializr নির্বাচন করুন এবং Next ক্লিক করুন।
- গ্রুপ, আর্টিফ্যাক্ট, প্রজেক্টের নাম এবং ডিপেনডেন্সি নির্বাচন করুন:
- Group:
com.example - Artifact:
batchdemo - ডিপেনডেন্সি হিসেবে
Spring Batchসিলেক্ট করুন।
- Group:
- প্রজেক্ট তৈরি হওয়ার পর IntelliJ IDEA আপনার প্রজেক্টের জন্য স্বয়ংক্রিয়ভাবে ডিপেনডেন্সি এবং কনফিগারেশন তৈরি করবে।
৩. Spring Batch কনফিগারেশন
application.properties ফাইলে স্প্রিং ব্যাচ কনফিগারেশন যোগ করুন:
spring.batch.job.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
৪. Job এবং Step কনফিগারেশন
স্প্রিং ব্যাচের জন্য একটি সিম্পল কনফিগারেশন তৈরি করুন:
@Configuration
@EnableBatchProcessing
public class BatchConfig {
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Bean
public Job job() {
return jobBuilderFactory.get("job")
.incrementer(new RunIdIncrementer())
.flow(step())
.end()
.build();
}
@Bean
public Step step() {
return stepBuilderFactory.get("step")
.<String, String>chunk(10)
.reader(reader())
.processor(processor())
.writer(writer())
.build();
}
@Bean
public ItemReader<String> reader() {
return new CustomReader();
}
@Bean
public ItemProcessor<String, String> processor() {
return new CustomProcessor();
}
@Bean
public ItemWriter<String> writer() {
return new CustomWriter();
}
}
৫. Spring Batch Job রান করা
IntelliJ IDEA তে SpringBootApplication ক্লাস তৈরি করুন:
@SpringBootApplication
public class BatchApplication {
@Autowired
private JobLauncher jobLauncher;
@Autowired
private Job job;
public static void main(String[] args) {
SpringApplication.run(BatchApplication.class, args);
}
@Bean
public CommandLineRunner run() {
return args -> {
jobLauncher.run(job, new JobParameters());
};
}
}
এখন আপনার স্প্রিং ব্যাচ প্রজেক্ট রান হবে এবং আপনি কনসোলে ফলাফল দেখতে পাবেন।
সারাংশ
স্প্রিং ব্যাচ (Spring Batch) একটি শক্তিশালী ফ্রেমওয়ার্ক যা ব্যাচ প্রসেসিং এবং ডেটা ম্যানিপুলেশন করতে ব্যবহৃত হয়। Eclipse বা IntelliJ IDEA তে স্প্রিং ব্যাচ প্রজেক্ট সেটআপ করা খুবই সহজ। প্রজেক্ট তৈরির পর, স্প্রিং ব্যাচ কনফিগারেশন, জব, স্টেপ এবং প্রোসেসর ইত্যাদি তৈরি করে ডেটা প্রোসেসিং চালানো সম্ভব হয়।
Read more