net.sf.mmm.util.component.base
Annotation Type ComponentSpecification
@Documented
@Retention(value=SOURCE)
@Target(value=TYPE)
public @interface ComponentSpecification
ComponentSpecification is used to annotate the specification (should
be an interface) of a component. It acts only for the purpose of
documentation and has no functional impact. However it will say that you can
get one (or multiple) instance(s) of this specification via
injection.
If you find this:
@ComponentSpecification
public interface MyComponent { ... }
and
@ComponentSpecification(plugin=true)
public interface MyPlugin { ... }
Then you can simply do this in your code:
@Named
public class MyClass {
...
@Inject
public void setMyComponent(MyComponent component) { ... }
...
@Inject
public void setMyPlugins(List<MyPlugins> plugins) { ... }
}
For simplicity all implementations of such component in this project have to
be stateless and thread-safe. Otherwise this
has to be documented in an explicit WARNING.
- Since:
- 2.0.0
- Author:
- Joerg Hohwiller (hohwille at users.sourceforge.net)
- See Also:
AnnotationConfigApplicationContext
|
Optional Element Summary |
boolean |
plugin
true if multiple implementations of this "component" are
(potentially) expected at a time. |
plugin
public abstract boolean plugin
true if multiple implementations of this "component" are
(potentially) expected at a time. In this case it is typically some sort of
plugin that should be injected to a list of the
annotated type.
- Default:
- false
Copyright © 2001-2010 mmm-Team. All Rights Reserved.