13 lines
1.7 KiB
Markdown
13 lines
1.7 KiB
Markdown
---
|
||
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 методы для перенаправления вызовов. Этот подход более тяжеловесный, так как требует создания нового класса во время выполнения программы. |