<><br>>ブースター(下)

1689 ワード

アドイン機構
ブースターはブースターを作ってローディングするのではなく、彼も一連の整合規則を経て最終的にフィルタリングされたのです.前の文で大体のことを述べました.springがブースターを探している間、AnnotationAwareAspectJAutoProxyCreatorには、すでにコンテナが起動している間に、現在利用可能なすべてのBeanFactoryAspectJAdvisorsBuilderに基づくブースターがロードされている例がある.このブライダルはどうやって負荷機構がありますか?この中には自動代理と手動代理があります.下記のコードをご覧ください
/**
     * Check whether the given aspect bean is eligible for auto-proxying.
     * 

If no <aop:include> elements were used then "includePatterns" will be * {@code null} and all beans are included. If "includePatterns" is non-null, * then one of the patterns must match. */ protected boolean isEligibleAspectBean(String beanName) { // , xml , // @Aspect 。 if (this.includePatterns == null) { return true; } // xml , include aspect else { for (Pattern pattern : this.includePatterns) { if (pattern.matcher(beanName).matches()) { return true; } } return false; } }

上記のブロックが無効になった理由は何ですか?このロード機構の問題です.プロジェクトの前にすでにxmlで指定されていますので、xmlに配置されているaspectを優先的に行っています.sdk定義のキャッシュのカットクラスを搭載していません.だから叶わない.解決策としては、すべての手動で切断面をロードすることです.すべてが自動で発見されて搭載されます.以下のとおりです

        
 
二つの面@Aspect testAspect2があると、xmlファイルの中で一つを指定したら、もう一つは機能しません.実はこれは変な使い方です.注を使った以上、なぜxmlの中でどのような役割を果たしますか?実際には、多くのコードは移行段階にあります.手動でxml構成に基づくbeanと注釈に基づくbeanはプロジェクトで使用されます.スプリングもこのような方式に対して支持があるからです.だから普段は特に問題はありません.