..
Прежде чем перейти, чтобы увидеть, как вы создаете с их аспект pointcuts и советы, очень важно понять, как прокси-серверы.
Прокси это не более чем оболочка (контейнер), который содержит объект и предоставляет доступ ко всем общественным объектом medodi.
Когда вы вызываете метод прокси фактической реализации метода делегированы объект Wrap, что делает наличие прокси полностью прозрачна для пользователя.
Прокси-сервер использует Spring AOP для реализации, чем простые методы делегат также имеют дело с различными рекомендации по управлению.
Мы понимаем, насколько это прокси реализовать один очень простой. Сначала мы создаем простой интерфейс:
{Открытый интерфейс SimpleInterface
общественных f1 недействительными ();
общественного недействительными f2 ();
}
мы создаем даже простая реализация:
SimplePojo {общественных класс реализует SimpleInterface
@ Override
общественных f1 недействительными () {
System.out.println ("F1");
f2 ();
}
@ Override
общественного недействительными f2 () {
System.out.println ("F2");
}
}
Отметим, что метод f1 () делает вызов к f2 ().
Давайте теперь создадим прокси-сервер, как уже было сказано, мы должны создать контейнер объекта и раскрыть все его методы, то прокси будет реализовывать интерфейс, а затем делегировать SimpleInterface все вызовы методов на реальном объекте:
SimpleProxy {общественных класс реализует SimpleInterface
Частные SimpleInterface делегирован;
общественных SimpleProxy (SimpleInterface делегата) {
супер ();
this.delegate = делегата;
}
@ Override
общественных f1 недействительными () {
System.out.println ("Делегирование F1 ()");
delegate.f1 ();
}
@ Override
общественного недействительными f2 () {
System.out.println ("Делегирование F2 ()");
delegate.f2 ();
}
}
В нашем простом примере, прокси-сервер делает печати сообщение, которое говорит, что это делегирование вызова.
Мы создаем сейчас основной тест, чтобы увидеть, как наш прокси:
общественного класса Главная {
государственной статической силы основных (String [] агдз) {
/ / Создание экземпляра компонента
SimpleInterface realBean SimplePojo = новый ();
System.out.println ("##### боб #####");
realBean.f1 ();
System.out.println ();
realBean.f2 ();
System.out.println ();
/ / Создаем экземпляр прокси
SimpleInterface SimpleProxy прокси = новой (новой SimplePojo ());
System.out.println ("##### прокси #####");
proxy.f1 ();
System.out.println ();
proxy.f2 ();
}
}
Первый блок кода дает следующие результаты:
##### Бин ##### F1 F2 F2Теперь можно ожидать, что выход второго блока выглядит следующим образом:
##### ##### Прокси Делегирование F1 () F1 Делегирование F2 () F2 Делегирование F2 () F2Invce нет! Вывод будет следующим:
##### ##### Прокси Делегирование F1 () F1 F2 Делегирование F2 () F2Как мы видим, что вызов метода f1 () является методом f2 () не проходит через прокси-сервер, потому что как только вы делегировали выполнение метода к реальным объектом все внутренние звонки не будет перехвачена по доверенности.

| |
Linux (курс)
Полное руководство по открытым исходным кодом системы. От 49 €. |
| |
PHP (курс)
Полный курс для создания динамических веб-сайтов. От 49 €. |
| |
Руби и Ruby On Rails (курс)
Создание программного обеспечения и веб-приложений с Рубином и RoR. С 39 €. |