কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ একটি মডিউলে ServiceLoader ক্লাস কখন ব্যবহার করবেন?


জাভাতে 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;
}

  1. জাভাতে pack() মেথড কখন ব্যবহার করবেন

  2. জাভাতে String ক্লাসের intern() মেথড কখন ব্যবহার করবেন?

  3. জাভাতে কখন অ্যাবস্ট্রাক্ট ক্লাস এবং কখন ইন্টারফেস ব্যবহার করবেন?

  4. জাভাতে SimpleDateFormat ক্লাস ব্যবহার করে Date কে ফরম্যাটেড String-এ কনভার্ট করা