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