Java มี ServiceLoader คลาสจาก java.util แพ็คเกจที่สามารถช่วยในการ ค้นหา ผู้ให้บริการ ที่รันไทม์โดยการค้นหาใน classpath สำหรับผู้ให้บริการที่กำหนดไว้ในโมดูล เราสามารถดูตัวอย่างแอปพลิเคชันเพื่อประกาศโมดูลพร้อมบริการและวิธีการทำงาน
ตัวอย่างเช่น เรามี "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(); } }
นี่คือ LoggerFinder การใช้งานภายใน "ทดสอบ .logging " โมดูล:
package com.tutorialspoint.platformlogging.logger; public class MyLoggerFinder extends LoggerFinder { @Override public Logger getLogger(String name, Module module) { // return a Logger depending on name/module } }
ใน "test.logging " ประกาศโมดูล เราสามารถจัดเตรียมการใช้งาน LoggerFinder บริการด้วย "ให้ – ด้วย " ประโยค
module com.tutorialspoint.test.logging { provides java.lang.System.LoggerFinder with com.tutorialspoint.platformlogging.logger.MyLoggerFinder; }