使用注释创建原型范围的Spring bean?

36 java spring scope annotations javabeans

是否可以将以下XML配置转换为基于注释的配置

<bean id="myBean" class="my.package.MyBeanClass" scope="prototype" />
Run Code Online (Sandbox Code Playgroud)

我正在使用Spring 2.5.6.

Man*_*uPK 70

您可以使用@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)注释.

@Service
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class CustomerService {
    // ...
}
Run Code Online (Sandbox Code Playgroud)
  1. Spring API文档.
  2. 映射示例.
  3. 范围注释参考.

  • 还有一个很好的常量来代替String:[`BeanDefinition.SCOPE_PROTOTYPE`](http://static.springsource.org/spring/docs/2.5.3/api/org/springframework/beans/factory/config/ BeanDefinition.html#SCOPE_PROTOTYPE) (9认同)
  • 在Scope注释Javadoc中,常量重新定义的是[ConfigurableBeanFactory.SCOPE_PROTOTYPE](http://docs.spring.io/spring/docs/3.2.5.RELEASE/javadoc-api/org/springframework/beans/factory/config/ ConfigurableBeanFactory.html#SCOPE_PROTOTYPE) (6认同)

Omk*_*kar 5

从当前开始spring version 4.3.2,我们可以使用 @Scope(“ prototype”)批注。

@Scope("prototype")
@Repository
public class MovieFinderImpl implements MovieFinder {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

  • @Steve,以防字符串更改(不太可能),或者您要使用IDE搜索引用 (5认同)
  • 我会说,使用一个提供的常量(如公认的答案)更好。 (2认同)