Meta-INF服务在Java中的用途是什么?
发布于 2018-10-11 17:30:46
它旨在存储服务提供商配置文件。
服务提供者是打包为JAR的服务提供者接口的实现。
服务加载器发现并加载服务提供者配置文件中声明的所有实现。
配置文件是以接口的完全限定名称命名的文件,其内容是实现的完全限定名称的列表。
以下是Servlet3.0在webapp启动时使用的javax.servlet.ServletContainerInitializer提供程序配置文件的示例。
org.apache.jasper.servlet.JasperInitializer
org.springframework.web.SpringServletContainerInitializer在本例中
Tomcat是服务Loader;
当tomcat启动webapp时,同时调用
onStartup(java.util.Set<java.lang.Class<?>> types, ServletContext context)JasperInitializer和SpringServletContainerInitializer类上的方法
发布于 2010-12-29 01:06:26
看一看ServiceLoader docs。
发布于 2021-08-08 10:48:01
在Java9之前,ServiceLoader从META-INF/services中的文件中查找服务的实现,该文件具有与服务接口相同的完全限定名称。它包含实现的完全限定名称列表。
从Java 9开始,它有模块,模块有模块描述符。这些“模块”可以定义ServiceLoader可以加载的服务及其实现。
https://stackoverflow.com/questions/4544899
复制相似问题