5

org.springframework.beans.factory.config.Scopeまたは、インターフェイスのカスタム実装を特定@Scopeの注釈付きアノテーションにバインドできますか?

たとえば、新しいスコープ タイプをカスタマイズしました。

@javax.inject.Scope @Retention(RUNTIME)
@interface Conversation {}

class ConversationScope implements Scope { ... }

class ConversationScopeConfigurer extends BeanFactoryPostProcessor
    { beanFactory.registerScope("conversation", new ConversationScope()); }

今、私はそれを次のように使用したい、

@Component
@Conversation
class Topic { ... }

それ以外の、

@Component
@org.springframework.context.annotation.Scope("conversation")
class Topic { ... }

出来ますか?

spring-context に「AnnotationPostProcessor」のようなものはありますか?

4

1 に答える 1

8

カスタムスコープリゾルバを登録することで可能になるようです<context:component-scan>

例えば:

<context:component-scan base-package="com.company" scope-resolver="org.springframework.context.annotation.Jsr330ScopeMetadataResolver" />

ソリューションをもう少しカスタマイズする必要がある場合は、JSR-299 アノテーションのブリッジの例も参照してください。

于 2011-03-21T20:09:53.227 に答える