1

私の会社では、 に似たアスペクト指向のトレース インターセプタに取り組んでいます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 など)。

4

1 に答える 1