Java Meta-Inf Services - PullRequest
       6

Java Meta-Inf Services

17 голосов
/ 28 декабря 2010

Какова цель служб Meta-INF в Java?

Ответы [ 2 ]

13 голосов
/ 28 декабря 2010

Взгляните на ServiceLoader документы .

6 голосов
/ 11 октября 2018

Он предназначен для хранения файлов конфигурации поставщика услуг.

Поставщик услуг представляет собой реализацию интерфейса поставщика услуг, упакованную как JAR.

Загрузчик службы обнаруживает и загружает все реализации, объявленные в файле конфигурации поставщика услуг.

AФайл конфигурации - это файл с именем полного имени интерфейса, а его содержимое - список полных имен реализаций.

Ниже приведен пример файла конфигурации поставщика для javax.servlet.ServletContainerInitializer, который используется.Servlet 3.0 при запуске веб-приложения.

org.apache.jasper.servlet.JasperInitializer
org.springframework.web.SpringServletContainerInitializer

В этом примере

  • Tomcat - загрузчик служб;
  • javax.servlet.ServletContainerInitializer - интерфейс поставщика услуг.
  • файл с именем javax.servlet.ServletContainerInitializer является файлом конфигурации поставщика услуг;
  • org.apache.jasper.servlet.JasperInitializer и org.springframework.web.SpringServletContainerInitializer * являются поставщиками услуг * 101022 *

    Когда кот сtartup webapp вызывает оба метода

    onStartup(java.util.Set<java.lang.Class<?>> types, ServletContext context)
    

    для классов JasperInitializer и SpringServletContainerInitializer

...