Java में java.util पैकेज से ServiceLoader क्लास है जो क्लासपाथ में खोज करके रनटाइम पर सर्विस प्रोवाइडर्स को लोकेट करने में मदद कर सकती है। मॉड्यूल में परिभाषित सर्विस प्रोवाइडर्स के लिए, हम मॉड्यूल को सर्विस के साथ घोषित करने और यह कैसे काम करता है, इसके लिए नमूना एप्लिकेशन देख सकते हैं।
उदाहरण के लिए, हमारे पास एक "test.app" मॉड्यूल है जिसे Logger का उपयोग करने की आवश्यकता है जिसे LoggerFinder सर्विस की मदद से System.getLogger() फैक्ट्री मेथड से प्राप्त किया जा सकता है।
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) {
// नाम/मॉड्यूल के आधार पर Logger लौटाएं
}
}
"test.logging" मॉड्यूल घोषणा में, हम "provides - with" क्लॉज के साथ LoggerFinder सर्विस का कार्यान्वयन प्रदान कर सकते हैं।
module com.tutorialspoint.test.logging {
provides java.lang.System.LoggerFinder
with com.tutorialspoint.platformlogging.logger.MyLoggerFinder;
}