Пример Spring Proxy создателя прокси

Пример создания прокси 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 сделает все возможное для вас. Пожалуйста, будьте осторожны, если хотите реализовать это в своем проекте.

Скачать исходный код