|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | |||||||||
@Retention(value=RUNTIME) @Target(value=TYPE) @Documented @InhabitantAnnotation(value="default") public @interface Service
Marker interface for service implementation. A service is defined by
an interface marked with the Contract annotation. Each service
implementation must be marked with the @Service interface and
implement the service interface.
Factory| Optional Element Summary | |
|---|---|
java.lang.String |
metadata
Additional metadata that goes into the inhabitants file. |
java.lang.String |
name
Name of the service. |
@Index public abstract java.lang.String name
Habitat.getComponent(Class, String) and similar methods can be used
to obtain a service with a particular name. All the named services
are still available through Habitat.getAllByContract(Class).
The default value "" indicates that the inhabitant is anonymous.
public abstract java.lang.String metadata
InhabitantsFile
for more details.
This information is accessible from Inhabitant.metadata().
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.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | |||||||||