Динамический прокси — это объект, генерируемый во время выполнения, реализующий один или несколько интерфейсов. Каждый вызов метода на прокси перехватывается InvocationHandler, который может добавить поведение до/после делегирования реальному объекту — или полностью пропустить делегирование. Spring AOP, ленивая загрузка JPA и мок-фреймворки (Mockito) построены на динамических прокси.
Как работает Proxy.newProxyInstance