@Retention(value=RUNTIME) @Target(value=TYPE) @Documented @InhabitantAnnotation(value="default") public @interface Service
ServiceLocator
. A service
marked with this annotation has the default scope of Singleton
,
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 a
Populator
as provided by the
DynamicConfigurationService.getPopulator()
method. An easier way to do that is with the
ServiceLocatorUtilities.createAndPopulateServiceLocator()
utility.
org.glassfish.hk2.api.ClassAnalyzer
public abstract String name
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.
public abstract String metadata
Descriptor.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.
public abstract String analyzer
ClassAnalyzer
service that should be used
to analyze this classClassAnalyzer
service that should
be used to analyze this classCopyright © 2009-2017, Oracle and/or its affiliates. All Rights Reserved.