Spring Batch একটি শক্তিশালী ফ্রেমওয়ার্ক যা ব্যাচ প্রসেসিংয়ের জন্য ব্যবহৃত হয়। এটি বড় পরিমাণে ডেটা প্রক্রিয়াকরণ এবং ব্যাচ আর্কিটেকচারে কার্যকরী সমাধান প্রদান করে। Spring Batch প্রজেক্ট তৈরি করতে Maven বা Gradle ব্যবহারের মাধ্যমে সহজেই সেটআপ করা যায়। এই গাইডে, আমরা Maven এবং Gradle ব্যবহার করে Spring Batch প্রজেক্ট তৈরি করার প্রক্রিয়া আলোচনা করবো।
Maven দিয়ে Spring Batch প্রজেক্ট তৈরি করা
1. Spring Initializr ব্যবহার করে Spring Batch প্রজেক্ট তৈরি করা
Spring Initializr ব্যবহার করে Spring Batch প্রজেক্ট তৈরি করা সহজ। Maven ভিত্তিক প্রজেক্ট তৈরি করতে নিচের স্টেপগুলো অনুসরণ করুন:
- Spring Initializr ওয়েবসাইটে যান: Spring Initializr
- Project হিসেবে "Maven Project" নির্বাচন করুন।
- Language হিসেবে "Java" নির্বাচন করুন।
- Spring Boot Version নির্বাচন করুন (যেমন: 3.0.0 বা আপনার পছন্দের লেটেস্ট ভার্সন)।
- Dependencies হিসেবে "Spring Batch" এবং "Spring Web" নির্বাচন করুন (আপনার প্রয়োজন অনুযায়ী অন্যান্য ডিপেনডেন্সিও নির্বাচন করতে পারেন)।
- "Generate" বাটনে ক্লিক করুন এবং ডাউনলোড করা ZIP ফাইলটি এক্সট্র্যাক্ট করুন।
2. Maven ডিপেনডেন্সি কনফিগারেশন
Spring Batch-এ প্রয়োজনীয় ডিপেনডেন্সি pom.xml ফাইলে সংযুক্ত করতে হবে। নিচে একটি সাধারণ pom.xml ফাইলের উদাহরণ দেওয়া হলো:
<dependencies>
<!-- Spring Boot Starter Web for web functionalities -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Batch for batch processing -->
<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-এ ব্যাচ প্রসেসিং এবং ইন-মেমরি ডেটাবেস (যেমন H2) ব্যবহারের জন্য প্রয়োজনীয় ডিপেনডেন্সি যুক্ত করে।
3. Spring Batch কনফিগারেশন
Spring Batch কনফিগারেশন এবং ব্যাচ প্রসেসিং ম্যানেজ করার জন্য আপনি @EnableBatchProcessing অ্যনোটেশন ব্যবহার করবেন। নিচে একটি সাধারণ Spring Batch কনফিগারেশন উদাহরণ দেওয়া হলো:
@Configuration
@EnableBatchProcessing
public class BatchConfig {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Bean
public Job job(JobCompletionNotificationListener listener, Step step1) {
return jobBuilderFactory.get("job")
.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();
}
}
এখানে একটি ব্যাচ জব কনফিগার করা হয়েছে, যেখানে একটি স্টেপ ডিফাইন করা হয়েছে। এই কনফিগারেশন আপনার ব্যাচ প্রসেসিং শুরু করার জন্য ব্যবহার করা যাবে।
Gradle দিয়ে Spring Batch প্রজেক্ট তৈরি করা
1. Spring Initializr ব্যবহার করে Gradle প্রজেক্ট তৈরি করা
Spring Initializr ব্যবহার করে Gradle ভিত্তিক Spring Batch প্রজেক্ট তৈরি করতে, Maven পদ্ধতির মতোই সেটআপ করতে হবে। তবে এই ক্ষেত্রে Project হিসেবে "Gradle Project" নির্বাচন করতে হবে।
- Spring Initializr ওয়েবসাইটে যান: Spring Initializr
- Project হিসেবে "Gradle Project" নির্বাচন করুন।
- Language হিসেবে "Java" নির্বাচন করুন।
- Spring Boot Version নির্বাচন করুন (যেমন: 3.0.0 বা আপনার পছন্দের লেটেস্ট ভার্সন)।
- Dependencies হিসেবে "Spring Batch" এবং "Spring Web" নির্বাচন করুন।
- "Generate" বাটনে ক্লিক করুন এবং ZIP ফাইল ডাউনলোড করে এক্সট্র্যাক্ট করুন।
2. Gradle ডিপেনডেন্সি কনফিগারেশন
Gradle প্রজেক্টের জন্য build.gradle ফাইলে প্রয়োজনীয় ডিপেনডেন্সি কনফিগার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো:
plugins {
id 'org.springframework.boot' version '3.0.0'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-batch'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
এখানে, spring-boot-starter-batch Spring Batch সমর্থনের জন্য এবং spring-boot-starter-web ওয়েব ফিচার যোগ করার জন্য ব্যবহৃত হয়েছে।
3. Spring Batch কনফিগারেশন
Gradle দিয়ে Spring Batch কনফিগার করার জন্য @EnableBatchProcessing অ্যনোটেশন ব্যবহার করা হয়, যা Spring Batch জব এবং স্টেপের কনফিগারেশন করে। এই কনফিগারেশন Maven-এর মতোই হবে। নিচে একটি উদাহরণ দেওয়া হলো:
@Configuration
@EnableBatchProcessing
public class BatchConfig {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Bean
public Job job(JobCompletionNotificationListener listener, Step step1) {
return jobBuilderFactory.get("job")
.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();
}
}
এটি Spring Batch কনফিগারেশনের সাধারণ উদাহরণ, যা আপনাকে ব্যাচ প্রসেসিংয়ের জন্য প্রয়োজনীয় স্টেপ এবং জব তৈরি করতে সাহায্য করবে।
সারাংশ
Spring Batch প্রজেক্ট তৈরি করতে Maven বা Gradle ব্যবহারের মাধ্যমে এটি খুবই সহজ এবং কার্যকরী হয়। Maven বা Gradle দিয়ে ডিপেনডেন্সি কনফিগারেশনের পর, @EnableBatchProcessing এবং JobBuilderFactory, StepBuilderFactory এর মাধ্যমে ব্যাচ কনফিগারেশন সম্পন্ন করা হয়। Spring Batch আপনাকে বড় পরিমাণে ডেটা প্রক্রিয়াকরণ, স্কেলেবিলিটি এবং ব্যাচ আর্কিটেকচারের সমাধান প্রদান করে।
Read more