Пример создания прокси Spring Auto
В последних примерах Spring AOP -advice,pointcut and advisor вам нужно вручную создать прокси-компонент (ProxyFactoryBean) для каждого bean-компонента, которому требуется поддержка AOP.
Это неэффективный способ, например, если вы хотите, чтобы все ваши классы DAO в клиентском модуле реализовали функцию AOP с поддержкой ведения журнала SQL (совет), то вам нужно вручную создать множество фабричных прокси-компонентов, в результате чего вы просто залейте файл конфигурации bean-компонентов тоннами прокси-компонентов.
К счастью, Spring поставляется с двумя автоматическими создателями прокси для автоматического создания прокси для ваших компонентов.
1. Пример BeanNameAutoProxyCreator
Перед этим вы должны создать прокси-компонент (ProxyFactoryBean) вручную.
customerAdvisor
И получите бин с бином с прокси-именем «customerServiceProxy».
CustomerService cust = (CustomerService)appContext.getBean("customerServiceProxy");
В механизме автоматического прокси вам просто нужно создатьBeanNameAutoProxyCreator и включить все ваши bean-компоненты (через имя bean-компонента или имя регулярного выражения) и «советник» в единый блок.
*Service
customerAdvisor
Теперь вы можете получить бин через оригинальное имя customerService, вы даже не знаете, что этот бин был прокси.
CustomerService cust = (CustomerService)appContext.getBean("customerService");
2. Пример DefaultAdvisorAutoProxyCreator
ЭтотDefaultAdvisorAutoProxyCreator чрезвычайно мощный, если какой-либо из bean-компонентов соответствует советнику, Spring автоматически создаст для него прокси.
Это просто из-за власти, так как вы не можете контролировать, какой бин должен быть прокси-сервером, вы можете просто доверять, что Spring сделает все возможное для вас. Пожалуйста, будьте осторожны, если хотите реализовать это в своем проекте.