|
Spec-Zone .ru
спецификации, руководства, описания, API
|
|
|||||||||
| ПРЕДЫДУЩИЙ СЛЕДУЮЩИЙ КЛАСС КЛАССА | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
| СВОДКА: ТРЕБУЕМЫЙ | ДОПОЛНИТЕЛЬНЫЙ | ДЕТАЛЬ: ЭЛЕМЕНТ | ||||||||
@Target(value={FIELD,PARAMETER})
@Retention(value=RUNTIME)
@Documented
public @interface Delegate
Идентифицирует точку инжекции делегата декоратора. Может быть применен к полю, бобовому параметру конструктора или параметру метода инициализатора боба декоратора class.
@Decorator
class TimestampLogger implements Logger {
@Inject @Delegate @Any Logger logger;
...
}
@Decorator
class TimestampLogger implements Logger {
private Logger logger;
@Inject
public TimestampLogger(@Delegate @Debug Logger logger) {
this.logger=logger;
}
...
}
У декоратора должна быть точно одна точка инжекции делегата. Точка инжекции делегата должна быть введенным полем, параметром метода инициализатора или бобовым параметром метода конструктора.
Контейнер вводит объект делегата к точке инжекции делегата. Объект делегата реализует тип делегата и делегирует вызовы метода вдоль стека декоратора. Когда контейнер вызывает декоратора во время перехвата бизнес-метода, декоратор может вызвать любой метод объекта делегата. Если декоратор вызывает объект делегата в какое-либо другое время, вызванный метод бросает IllegalStateException.
@Decorator
class TimestampLogger implements Logger {
@Inject @Delegate @Any Logger logger;
void log(String message) {
logger.log( timestamp() + ": " + message );
}
...
}
@Decorator specifies that a class is a decorator.
|
|||||||||
| ПРЕДЫДУЩИЙ СЛЕДУЮЩИЙ КЛАСС КЛАССА | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
| СВОДКА: ТРЕБУЕМЫЙ | ДОПОЛНИТЕЛЬНЫЙ | ДЕТАЛЬ: ЭЛЕМЕНТ | ||||||||
Авторское право © 2009-2011, Oracle Corporation и/или его филиалы. Все права защищены. Использование подвергается
Сгенерированный на 10-February-2011 12:41