Annotation Type Service
-
@Retention(RUNTIME) @Target(TYPE) @Documented @InhabitantAnnotation("default") public @interface Service
Annotation placed on classes that are to be automatically added to an hk2ServiceLocator
. A service marked with this annotation has the default scope ofSingleton
, but any other scope annotation placed on the class will override that default.This annotation is read at build time using the hk2-inhabitant-generator and information about the service is placed into a file in the associated jar. The usual way to get these services into a
ServiceLocator
is to use aPopulator
as provided by theDynamicConfigurationService.getPopulator()
method. An easier way to do that is with theServiceLocatorUtilities.createAndPopulateServiceLocator()
utility.- Author:
- Jerome Dochez, Kohsuke Kawaguchi
- See Also:
org.glassfish.hk2.api.ClassAnalyzer
-
-
Element Detail
-
name
String name
Name of the service.ServiceLocator.getService(Class, String, java.lang.annotation.Annotation...)
and similar methods can be used to obtain a service with a particular name.The default value "" indicates that the inhabitant has no name.
- Default:
- ""
-
-
-
metadata
String metadata
Additional metadata that goes into the inhabitants file. The value is "key={value},key={value1,value2,...},..." format. This information is accessible fromDescriptor.getMetadata()
.While this is limited in expressiveness, metadata has a performance advantage in it that it can be read without even creating a classloader for this class. For example, this feature is used by the configuration module so that the config file can be read without actually loading the classes.
- Default:
- ""
-
-
-
analyzer
String analyzer
The name of theClassAnalyzer
service that should be used to analyze this class- Returns:
- The name of the
ClassAnalyzer
service that should be used to analyze this class
- Default:
- "default"
-
-