Exemple de créateur de proxy automatique de printemps

Exemple de créateur de proxy automatique Spring

Dans les derniers exemples Spring AOP -advice,pointcut and advisor, vous devez créer manuellement un bean proxy (ProxyFactoryBean) pour chaque beans dont le support AOP est nécessaire.

Ce n'est pas un moyen efficace, par exemple, si vous souhaitez que toutes vos classes DAO dans le module client implémentent la fonctionnalité AOP avec la prise en charge de la journalisation SQL (conseillez), vous devez créer manuellement de nombreux beans de fabrique de proxy, par conséquent, vous venez de inonder votre fichier de configuration de bean avec des tonnes de beans proxy.

Heureusement, Spring est livré avec deux créateurs de proxy automatiques pour créer automatiquement des proxy pour vos beans.

1. Exemple BeanNameAutoProxyCreator

Avant cela, vous devez créer un bean proxy (ProxyFactoryBean) manuellement.



    
        
        
    

    

    

        

        
            
                customerAdvisor
            
        
    

    
        
        
    

Et obtenez le bean avec le bean avec le nom de proxy «customerServiceProxy».

    CustomerService cust = (CustomerService)appContext.getBean("customerServiceProxy");

Dans le mécanisme de proxy automatique, il vous suffit de créer unBeanNameAutoProxyCreator, et d'inclure tous vos beans (via le nom du bean ou le nom de l'expression régulière) et le «conseiller» dans une seule unité.



    
        
        
    

    

    
        
        
    

    
        
            
                *Service
            
        
        
            
                customerAdvisor
            
        
    

Maintenant, vous pouvez obtenir le bean via le nom d'origine "customerService", vous savez même que ce bean a été un proxy.

    CustomerService cust = (CustomerService)appContext.getBean("customerService");

2. Exemple de DefaultAdvisorAutoProxyCreator

CeDefaultAdvisorAutoProxyCreator est extrêmement puissant, si l'un des beans est associé à un conseiller, Spring créera automatiquement un proxy pour celui-ci.



    
        
        
    

    

    
        
        
    

       

C'est un peu plus de puissance, puisque vous ne contrôlez pas ce que le bean devrait être un proxy, ce que vous pouvez faire, c'est simplement que Spring fera le meilleur pour vous. Veuillez faire très attention si vous souhaitez mettre cela en œuvre dans votre projet.

Télécharger le code source