Java META-INF/services

It’s intended to store service provider configuration files.

A Service provider is an implementation of a Service Provider Interface packaged as JAR.

A Service loader discover and load all implementations declared in the service provider configuration file.

A configuration file is a file named as the fully qualified name of the interface and its content is a list of fully qualified names of implementations.

Following is an example of provider configuration file for javax.servlet.ServletContainerInitializer that is used by Servlet 3.0 at webapp startup.

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

In this example

  • Tomcat is the Service Loader;
  • javax.servlet.ServletContainerInitializer is the Service Provider Interface
  • file named javax.servlet.ServletContainerInitializer is the Service Provider configuration file;
  • org.apache.jasper.servlet.JasperInitializer and org.springframework.web.SpringServletContainerInitializer are Service providers

When tomcat startup webapp call both

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

methods on JasperInitializer and SpringServletContainerInitializer classes

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)