Spring自動プロキシ作成者の例

Spring Autoプロキシクリエーターの例

前回のSpringAOPの例–advicepointcut and advisorでは、AOPサポートが必要なBeanごとにプロキシBean(ProxyFactoryBean)を手動で作成する必要があります。

これは効率的な方法ではありません。たとえば、カスタマモジュールのすべてのDAOクラスでSQLロギングサポート(アドバイス)を使用してAOP機能を実装する場合、多くのプロキシファクトリBeanを手動で作成する必要があります。 Bean構成ファイルを大量のプロキシBeanであふれさせる。

幸い、Springには、Beanのプロキシを自動的に作成する2つの自動プロキシクリエーターが付属しています。

1. BeanNameAutoProxyCreatorの例

その前に、プロキシBean(ProxyFactoryBean)を手動で作成する必要があります。



    
        
        
    

    

    

        

        
            
                customerAdvisor
            
        
    

    
        
        
    

そして、プロキシ名が「customerServiceProxy」のBeanでBeanを取得します。

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

自動プロキシメカニズムでは、BeanNameAutoProxyCreatorを作成し、すべてのBean(Bean名または正規表現名を介して)と「アドバイザー」を1つのユニットに含める必要があります。



    
        
        
    

    

    
        
        
    

    
        
            
                *Service
            
        
        
            
                customerAdvisor
            
        
    

これで、元の名前「customerService」でBeanを取得できるようになりました。このBeanがプロキシであることがわかります。

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

2. DefaultAdvisorAutoProxyCreatorの例

このDefaultAdvisorAutoProxyCreatorは非常に強力です。いずれかのBeanがアドバイザーによって一致した場合、Springはそのプロキシを自動的に作成します。



    
        
        
    

    

    
        
        
    

       

これは力に過ぎません。どのBeanをプロキシにするかを制御できないため、できることは、Springがあなたのために最善を尽くすことだけです。 これをプロジェクトに実装する場合は注意してください。

ソースコードをダウンロード