首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Meta-Inf服务

Java Meta-Inf服务
EN

Stack Overflow用户
提问于 2010-12-28 17:09:36
回答 3查看 18.5K关注 0票数 36

Meta-INF服务在Java中的用途是什么?

EN

回答 3

Stack Overflow用户

发布于 2018-10-11 17:30:46

它旨在存储服务提供商配置文件。

服务提供者是打包为JAR的服务提供者接口的实现。

服务加载器发现并加载服务提供者配置文件中声明的所有实现。

配置文件是以接口的完全限定名称命名的文件,其内容是实现的完全限定名称的列表。

以下是Servlet3.0在webapp启动时使用的javax.servlet.ServletContainerInitializer提供程序配置文件的示例。

代码语言:javascript
复制
org.apache.jasper.servlet.JasperInitializer
org.springframework.web.SpringServletContainerInitializer

在本例中

Tomcat是服务Loader;

  • javax.servlet.ServletContainerInitializer是服务提供者接口

  • 文件名为javax.servlet.ServletContainerInitializer是服务提供者配置file;

  • org.apache.jasper.servlet.JasperInitializer,org.springframework.web.SpringServletContainerInitializer是服务提供者

当tomcat启动webapp时,同时调用

代码语言:javascript
复制
onStartup(java.util.Set<java.lang.Class<?>> types, ServletContext context)

JasperInitializer和SpringServletContainerInitializer类上的方法

票数 23
EN

Stack Overflow用户

发布于 2010-12-29 01:06:26

看一看ServiceLoader docs

票数 19
EN

Stack Overflow用户

发布于 2021-08-08 10:48:01

在Java9之前,ServiceLoader从META-INF/services中的文件中查找服务的实现,该文件具有与服务接口相同的完全限定名称。它包含实现的完全限定名称列表。

从Java 9开始,它有模块,模块有模块描述符。这些“模块”可以定义ServiceLoader可以加载的服务及其实现。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4544899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档