为了账号安全,请及时绑定邮箱和手机立即绑定

什么是 ServiceLoader,它是如何使用的?

什么是 ServiceLoader,它是如何使用的?

汪汪一只猫 2021-09-03 13:29:26
我遇到了文档,但ServiceLoader不清楚它适合哪些用例。什么时候用ServiceLoader?
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

当您希望您的程序具有“插件”功能时,您可以使用 ServiceLoader。当您希望允许人们通过将 jar 文件添加到包含特定功能子集实现的类路径来自定义您的应用程序时,您可以使用 ServiceLoader 在类路径中查找这些实现。

ServiceLoader 本身就是jar SPI 规范的一个实现,这个规范已经存在很长时间了。(我相信它是在 Java 1.3 中引入的。)

Java SE 已经在很多地方将它用于这个目的,包括:


查看完整回答
反对 回复 2021-09-03
?
HUWWW

TA贡献1874条经验 获得超12个赞

你熟悉“控制反转”的原理吗?

Java 实现了它ServiceLoader。该类旨在在类路径上定位接口的实现类。您传入一个服务接口,您将获得该服务的一个或多个实现。

您可能会在此处找到一个很好的实际示例。


PS:尽管它是一个开箱即用的解决方案和一个非常简单的工具,但我认为与 Spring IoC Container 和 Google Guice 相比,它已经过时且不够灵活。


查看完整回答
反对 回复 2021-09-03
  • 3 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信