digital-garden/knowledge/dev/java/frameworks/spring/Создание прокси-объектов в SpringBoot.md
2024-06-13 21:01:37 +03:00

13 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- зрелость/🌱
date: 2023-11-15
zero-link:
parents:
- "[[SpringBoot]]"
linked:
---
Механизм создания прокси-объектов в SpringBoot зависит от того, используете вы интерфейсы или нет.
1. **Прокси на основе интерфейсов (JDK Dynamic Proxy)**: Если ваш компонент Spring (например, `@Service` или `@Component`) реализует интерфейс, Spring по умолчанию создает прокси-объект, используя механизм динамических прокси Java (JDK Dynamic Proxy). Это означает, что прокси будет реализовывать тот же интерфейс, что и ваш сервис, и перенаправлять вызовы к реальному объекту сервиса. Этот подход более легковесный и не требует специальной обработки класса.
2. **Прокси на основе классов (CGLIB Proxy)**: Если ваш компонент не реализует интерфейс, Spring будет использовать библиотеку CGLIB для создания прокси-класса. В этом случае создается подкласс вашего сервиса, и в нем переопределяются все public методы для перенаправления вызовов. Этот подход более тяжеловесный, так как требует создания нового класса во время выполнения программы.