プロジェクトの当初、通常の動作、奇妙な質問の最近の出現:コードを簡単に見つけることがないレコードを発行します。方法コントローラにおいて、特定の@Autowired Beanが使用ヌル値に注入しました。不思議なことに、他のコントローラ内の同じBeanは、あっても他の方法で電流制御で、通常通りです。
トラブルシューティング後、原因を分析し、特定の機能の後に分析ログないセクションAOPを添加する方法は、その後、同様の問題方法改質剤の出現に関連する変更を表示プライベート改質方法であることを見出しました。
理由を説明します:
AOPのJDK動的プロキシ機構や実装インタフェースCGLIBのプロキシメカニズムを使用して、バネ機構は、継承およびサブクラスに基づいて実装されています。
ソーススプリングAOPのより具体的な部分であることが
方法= clazz.getMethods()メソッド[] ;
方法のJAVAのみ保護/パブリックメソッドを取得し得る反射、方法は、最終的に故障豆注入につながる、プライベート剤であることができません。
要約すると、これは実際には非常に簡単な質問ですが、コーディングは標準化されていない、またはこれらのシーンの古いアイテムの再構築が問題にして見つけるのは容易ではありません表示され、開発者は多くの場合、強迫観念は、ロジックの元の方法に変更があり、無視しないためにアウト。使用すると、修飾子はプライベートではありませんターゲット方法を確認するために新規参入をカット。