2

で注釈が付けられた単一のメソッドを持つ@Configuration(それを呼びましょう)で注釈が付けられたクラスがあります。このメソッドは、いくつかのBeanの登録を担当する実装を返します。ただし、Springは、このファクトリが実行時に登録するBeanを解決できません。StubConfiguration@BeanBeanFactoryPostProcessor

私の仮定ではStubConfiguration、Springのコンポーネントスキャンによって取得され、BeanFactoryPostProcessorが登録されてからそのpostProcessBeanFactory()メソッドが呼び出され、続いて必要なBeanが登録されます。

私はこれについて間違って考えていますか?ApplicationContextこの後処理を使用して、必要なBeanを登録するにはどうすればよいですか?

4

2 に答える 2

0

@StubXMLアプリコンテキストを使用してBeanを宣言している場合は、コンポーネントスキャンを実行し、Springコンポーネントアノテーションとして扱うようにSpringに指示できます。

<context:component-scan base-package="your.base.package">
    <context:include-filter type="annotation" expression="your.stub.package.Stub"/>
</context:component-scan>

アノテーション構成アプリのコンテキストのみを使用している場合は、XMLなしでそれを行う方法について、この回答を確認してください。

于 2012-06-19T22:14:15.713 に答える
0

@Stubアノテーションにアノテーションを拡張させるのはどう@Componentですか?@Serviceまたはのように@Repository

通常のSpringコンテキストスキャンでBeanをスキャンし、カスタムアノテーションを保持でき、Beanを手動で登録する必要はありません。

からの例@Service

{@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Service {

    /**
     * The value may indicate a suggestion for a logical component name,
     * to be turned into a Spring bean in case of an autodetected component.
     * @return the suggested component name, if any
     */
    String value() default "";

}}
于 2012-06-20T01:49:02.513 に答える