Spring Autoプロキシクリエーターの例
前回のSpringAOPの例–advice、pointcut 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があなたのために最善を尽くすことだけです。 これをプロジェクトに実装する場合は注意してください。