Ответ 1
Вместо этого используйте @Scope
.
Кроме того, DefaultScopes
недоступен в ядре Spring, но вы можете использовать BeanDefinition.SCOPE_PROTOTYPE
и BeanDefinition.SCOPE_SINGLETON
для удобства.
Старые документы для Spring Javaconfig говорят, что я могу использовать
@Bean(scope=DefaultScopes.PROTOTYPE)
чтобы получить прототип bean, но Spring 3.0.5 @Bean
похоже, не обладает этим свойством.
Есть ли способ контролировать область действия bean в Javaconfig?
Вместо этого используйте @Scope
.
Кроме того, DefaultScopes
недоступен в ядре Spring, но вы можете использовать BeanDefinition.SCOPE_PROTOTYPE
и BeanDefinition.SCOPE_SINGLETON
для удобства.
Вы можете добавить @Scope("prototype")
, например:
@Bean
@Scope("prototype")
public DemoDao getDao() {
DemoDao dao = new DemoDao();
dao.setAddress("annoted:address");
dao.setName("annoted:name");
return dao;
}
Используйте для конфигурации Java следующую команду:
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public SpringBean springBean(){
SpringBean bean = new SpringBean();
return bean;
}
Или просто,
@Scope(value = "prototype")
Обратитесь @Scope аннотация