私の会社では、 に似たアスペクト指向のトレース インターセプタに取り組んでいますDebugInterceptor
。を構成し、AOP の自動プロキシ Bean をCustomizableTraceInterceptor
使用しています。BeanNameAutoProxyCreator
私たちが直面している問題はBeanNameAutoProxyCreator
、構成に を導入すると、次のようになることです。
@構成 @Import(BConfig.class) @EnableAspectJAutoProxy パブリック クラス AConfig { @豆 public static BeanNameAutoProxyCreator beanNameAutoProxyCreator() { BeanNameAutoProxyCreator beanNameAutoProxyCreator = new BeanNameAutoProxyCreator(); beanNameAutoProxyCreator.setInterceptorNames(新しい文字列[] {DEBUG_INTERCEPTOR_NAME}); beanNameAutoProxyCreator.setBeanNames(新しい文字列[] {BEANS_NAMES_EXPRESSION}); beanNameAutoProxyCreator を返します。 } }
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualing bean of type [X] を取得します。X は Resteasy Proxy です。この Resteasy Proxy は で宣言されていBConfig
ます。
ここで、Resteasy Proxy Bean 構成を AConfig に移動すると、この問題は解決され、@DependsOn
問題も解決されます。
私の質問は 3 です: Spring はいつ Bean 間の依存関係を解決できますか? BeanNameAutoProxyCreator を使用するとこの動作が変わるのはなぜですか? この問題を解決するための推奨される方法は何ですか (BeanPostProcessor、@DependsOn など)。