Google Guice হলো একটি জনপ্রিয় Dependency Injection (DI) ফ্রেমওয়ার্ক যা Java অ্যাপ্লিকেশনের কোডকে আরও মডুলার এবং মেইনটেইনেবল করে তোলে। Maven ব্যবহার করে Guice অন্তর্ভুক্ত করা খুব সহজ। নিচে ধাপে ধাপে প্রক্রিয়াটি ব্যাখ্যা করা হলো।
1. Maven প্রকল্প সেটআপ করুন
প্রথমে নিশ্চিত করুন আপনার প্রোজেক্ট Maven ভিত্তিক। যদি Maven প্রকল্প না থাকে, তাহলে নিচের মতো একটি নতুন Maven প্রকল্প তৈরি করুন:
mvn archetype:generate -DgroupId=com.example -DartifactId=guice-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
এটি একটি guice-example নামে Maven প্রকল্প তৈরি করবে।
2. Guice লাইব্রেরি ডিপেনডেন্সি যোগ করুন
pom.xml ফাইলে Guice লাইব্রেরির ডিপেনডেন্সি যোগ করুন।
<dependencies>
<!-- Guice Dependency -->
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>5.1.0</version>
</dependency>
<!-- Optional: Guice AssistedInject (যদি প্রয়োজন হয়) -->
<dependency>
<groupId>com.google.inject.extensions</groupId>
<artifactId>guice-assistedinject</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
5.1.0হলো Guice-এর সর্বশেষ স্থিতিশীল সংস্করণ (2024 অনুযায়ী)। প্রয়োজনে আপনি Maven Central থেকে সর্বশেষ সংস্করণ যাচাই করুন।
3. Maven ডিপেনডেন্সি আপডেট করুন
Maven ডিপেনডেন্সি আপডেট করতে নিচের কমান্ড চালান:
mvn clean install
এটি সমস্ত ডিপেনডেন্সি ডাউনলোড করবে এবং আপনার প্রকল্পে অন্তর্ভুক্ত করবে।
4. Guice ব্যবহার শুরু করুন
Guice ব্যবহার করতে হলে একটি Module তৈরি করতে হবে এবং Injector এর মাধ্যমে ডিপেনডেন্সি ম্যানেজ করতে হবে। নিচে উদাহরণ দেওয়া হলো:
Step 1: Module তৈরি করুন
import com.google.inject.AbstractModule;
public class AppModule extends AbstractModule {
@Override
protected void configure() {
bind(Service.class).to(ServiceImpl.class); // Interface-to-Implementation Mapping
}
}
Step 2: Interface এবং Implementation তৈরি করুন
public interface Service {
void performTask();
}
public class ServiceImpl implements Service {
@Override
public void performTask() {
System.out.println("Task performed successfully!");
}
}
Step 3: Main ক্লাসে Injector ব্যবহার করুন
import com.google.inject.Guice;
import com.google.inject.Injector;
public class MainApp {
public static void main(String[] args) {
// Guice Injector তৈরি করুন
Injector injector = Guice.createInjector(new AppModule());
// Service-এর ডিপেনডেন্সি ইনজেকশন
Service service = injector.getInstance(Service.class);
// মেথড কল করুন
service.performTask();
}
}
5. প্রোজেক্ট রান করুন
Maven ব্যবহার করে প্রোজেক্ট কম্পাইল এবং রান করতে নিচের কমান্ড ব্যবহার করুন:
mvn compile
mvn exec:java -Dexec.mainClass="com.example.MainApp"
এটি সফলভাবে "Task performed successfully!" আউটপুট করবে।
6. Guice AssistedInject ব্যবহার (ঐচ্ছিক)
যদি আপনাকে কনস্ট্রাক্টরে নির্দিষ্ট ডিপেনডেন্সি Inject করতে হয়, তাহলে Guice-এর AssistedInject ব্যবহার করতে পারেন। এটি guice-assistedinject ডিপেনডেন্সি ব্যবহার করে।
- Guice Maven প্রোজেক্টে সহজে অন্তর্ভুক্ত করা যায় এবং Dependency Injection-এর মাধ্যমে আপনার অ্যাপ্লিকেশন আরও মডুলার ও স্কেলেবল হয়।
pom.xmlএ সঠিক ডিপেনডেন্সি যোগ করা এবং Module-Injector প্যাটার্ন অনুসরণ করলেই Guice ব্যবহার করা যায়।
এখন আপনি Guice-ভিত্তিক Dependency Injection এর সুবিধা নিয়ে আপনার প্রোজেক্টে কাজ করতে পারবেন।
Read more