Автор оригинала: mkyong.
В примерах AOP прошлой весной – совет , pointcut и советник , вам необходимо вручную создать компонент-посредник (ProxyFactoryBean) для каждого компонента, которому требуется поддержка AOP.
Это неэффективный способ, например, если вы хотите, чтобы все ваши классы DAO в модуле customer реализовали функцию AOP с поддержкой ведения журнала SQL (советую), тогда вам придется вручную создать множество компонентов фабрики прокси, в результате вы просто зальете файл конфигурации компонента тоннами компонентов прокси.
К счастью, Spring поставляется с двумя автоматическими создателями прокси-серверов для автоматического создания прокси-серверов для ваших компонентов.
1. Пример BeanNameAutoProxyCreator
Перед этим вам необходимо вручную создать компонент-посредник (ProxyFactoryBean).
customerAdvisor
И получите боб с бобом с именем прокси “Прокси службы поддержки клиентов”.
CustomerService cust = (CustomerService)appContext.getBean("customerServiceProxy");
В механизме автоматического прокси-сервера вам просто нужно создать BeanNameAutoProxyCreator и включить все ваши компоненты (через имя компонента или имя регулярного выражения) и “советник” в один блок.
*Service
customerAdvisor
Теперь вы можете получить боб с помощью оригинального имени “Служба поддержки клиентов”, вы даже не знаете, что этот боб был проксирован.
CustomerService cust = (CustomerService)appContext.getBean("customerService");
2. Пример DefaultAdvisorAutoProxyCreator по умолчанию
Этот DefaultAdvisorAutoProxyCreator чрезвычайно мощный, если какой-либо из компонентов соответствует советнику, Spring автоматически создаст для него прокси-сервер.
Это просто превышение полномочий, так как у вас нет контроля над тем, каким должен быть бин, вы можете просто доверять, что Spring сделает для вас все возможное. Пожалуйста, будьте внимательны, если вы хотите внедрить это в свой проект.
Скачать Исходный Код
Оригинал: “https://mkyong.com/spring/spring-auto-proxy-creator-example/”