我可以使用Spring Javaconfig创建原型范围的bean吗?

时间:2011-11-14 17:51:10

标签: java spring

Spring Javaconfig的旧文档说我可以使用

@Bean(scope=DefaultScopes.PROTOTYPE)

获取原型bean,但Spring 3.0.5的@Bean似乎没有这个属性。

有没有办法在Javaconfig中控制bean的范围?

3 个答案:

答案 0 :(得分:21)

Use @Scope instead

此外,DefaultScopes在Spring核心中不可用,但为方便起见,您可以使用BeanDefinition.SCOPE_PROTOTYPEBeanDefinition.SCOPE_SINGLETON

答案 1 :(得分:2)

您可以添加@Scope("prototype"),例如:

@Bean
@Scope("prototype")
public DemoDao getDao() {
    DemoDao dao = new DemoDao();
    dao.setAddress("annoted:address");
    dao.setName("annoted:name");
    return dao;
}

答案 2 :(得分:0)

将以下内容用于Java配置,

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public SpringBean springBean(){
    SpringBean bean = new SpringBean();
    return bean;
}

或者简单地说,

@Scope(value = "prototype")

参考@Scope注释