জাভাতে java.util প্যাকেজ থেকে ServiceLoader ক্লাস আছে যা সার্ভিস প্রোভাইডার লোকেট করতে সাহায্য করে রানটাইমে ক্লাসপথে সার্চ করে। মডিউলে সংজ্ঞায়িত সার্ভিস প্রোভাইডারের জন্য, আমরা একটি স্যাম্পল অ্যাপ্লিকেশন দেখতে পারি যে কীভাবে সার্ভিস সহ মডিউল ঘোষণা করা যায় এবং এটি কীভাবে কাজ করে।
উদাহরণস্বরূপ, আমাদের একটি test.app মডিউল আছে যা Logger ব্যবহার করতে চায় যা System.getLogger() ফ্যাক্টরি মেথড থেকে LoggerFinder সার্ভিসের সাহায্যে প্রাপ্ত হতে পারে।
module com.tutorialspoint.test.app {
requires java.logging;
exports com.tutorialspoint.platformlogging.app;
uses java.lang.System.LoggerFinder;
}
নিচে test.app.MainApp ক্লাস দেওয়া হল:
package com.tutorialspoint.platformlogging.app;
public class MainApp {
private static Logger LOGGER = System.getLogger();
public static void main(String args[]) {
LOGGER.log();
}
}
এটি test.logging মডিউলের ভিতরে LoggerFinder ইমপ্লিমেন্টেশন:
package com.tutorialspoint.platformlogging.logger;
public class MyLoggerFinder extends LoggerFinder {
@Override
public Logger getLogger(String name, Module module) {
// name/module-এর উপর নির্ভর করে একটি Logger রিটার্ন করুন
}
}
test.logging মডিউল ঘোষণায়, আমরা LoggerFinder সার্ভিসের একটি ইমপ্লিমেন্টেশন প্রদান করতে পারি provides - with ক্লজ দিয়ে।
module com.tutorialspoint.test.logging {
provides java.lang.System.LoggerFinder
with com.tutorialspoint.platformlogging.logger.MyLoggerFinder;
}