Я не знаю значение использования прокси пружиной. что эффективно?
динамический прокси - это функция JDK. Его можно использовать для реализации интерфейса с помощью обработчика вызова .
Динамический прокси-класс (далее просто называемый прокси-классом) - это класс , который реализует список интерфейсов , указанных во время выполнения, когда класс {{ 1}}, с поведением, как описано ниже. Прокси-интерфейс - это такой интерфейс , который реализуется прокси-классом . Экземпляр прокси - это экземпляр прокси-класса. Каждый экземпляр прокси имеет связанный объект обработчика вызова , который реализует интерфейс InvocationHandler.
У динамического прокси есть некоторые накладные расходы. Однако в большинстве случаев накладные расходы не будут значительными.Настоящая проблема заключается в том, что (чрезмерное) использование динамических прокси-серверов затрудняет понимание и отладку приложения. Например, динамический прокси-сервер будет отображаться с несколькими строками в трассировке стека.
Динамические прокси часто используются для реализации декораторов . Одним из примеров этого является AOP in Spring. (Я не хочу вдаваться в подробности AOP и не буду использовать терминологию АОП для упрощения). Где определенные задачи реализованы в одном классе и используются во многих местах. Динамические прокси (и обработчики вызовов) - это только связующий код (предоставляемый Spring) для перехвата вызовов методов. (На самом деле, динамические прокси - это только деталь реализации этой возможности. Генерация классов «на лету» - еще одна возможность реализовать ее.)
Прокси-серверы используются AOP . Вкратце:
Обычно да.
Caller --> Real object
Но когда, например, вам нужно автоматическое управление транзакциями, spring помещает прокси вашего реального объекта
Caller --> Proxy --> Real object
, где прокси запускает транзакцию.
Вот хорошая статья , объясняющая как суть прокси, так и их эффективность (производительность) весной