gpt4 book ai didi

Spring JavaConfig,bean 的自定义作用域和注解

转载 作者:IT老高 更新时间:2023-10-28 13:47:08 25 4
gpt4 key购买 nike

我有一个问题要解决: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") 还是预期以其他方式?

谢谢

最佳答案

你需要使用注解@Scope。像这样:

@Scope("workflow")

也可以创建自定义范围限定符:

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

并以这种方式使用它:

@Component
@WorkflowScoped
class SomeBean

关于Spring JavaConfig,bean 的自定义作用域和注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15435860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com