13

解決すべき問題があります:1)私たちのプロジェクトはSpring JavaConfigアプローチを使用しています(したがってxmlファイルはありません)2)カスタムスコープを作成する必要があります.xmlの例は次のようになります:

<bean class="org.springframework.beans.factory.config.CustomScopeConfigurer">
<property name="scopes">
    <map>
        <entry key="workflow">
            <bean
                class="com.amazonaws.services.simpleworkflow.flow.spring.WorkflowScope" />
        </entry>
    </map>
</property>

私は JavaConfig でそれを理解しました。これは次のようになります。

    @Bean
public CustomScopeConfigurer customScope () {
    CustomScopeConfigurer configurer = new CustomScopeConfigurer ();
    Map<String, Object> workflowScope = new HashMap<String, Object>();
    workflowScope.put("workflow", new WorkflowScope ());
    configurer.setScopes(workflowScope);

    return configurer;
}

私の仮定が間違っている場合は修正してください。

3) クラスに @Component (scope="workflow") のような注釈を付ける必要があります。再度 xml 構成は次のようになります。

<bean id="activitiesClient" class="aws.flow.sample.MyActivitiesClientImpl" scope="workflow"/>

したがって、基本的には質問です - @Component (scope="workflow") を使用するという私の仮定は正しいですか、それとも他の方法であると予想されますか?

ありがとう

4

2 に答える 2

9

アノテーションを使用する必要があります@Scope。このような:

@Scope("workflow")

カスタム スコープ修飾子を作成することもできます。

@Qualifier
@Scope("workflow")
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface WorkflowScoped {
}

次のように使用します。

@Component
@WorkflowScoped 
class SomeBean
于 2013-03-15T15:21:11.130 に答える