弹簧范围引用作为枚举?
也许我错过了一些东西,但是没有提供静态引用的类吗?Scope.PROTOTYPE, Scope.SINGLETON
还是我总是必须使用非类型安全字符串作为作用域?
@Scope("prototype")
@Scope("singleton")
也许我错过了一些东西,但是没有提供静态引用的类吗?Scope.PROTOTYPE, Scope.SINGLETON
还是我总是必须使用非类型安全字符串作为作用域?
@Scope("prototype")
@Scope("singleton")
根据Scope的文档,该元素的类型是 ,而不是某个枚举常量。因此,我们正在搜索一个类,其中公开了元素的可能值。value
String
value
BeanDefinition是你要找的类。它提供了几个字段,但您可能对这两个字段感兴趣:public static String
SCOPE_SINGLETON
SCOPE_PROTOTYPE
例如,它们可以像这样使用:
@Scope(value = BeanDefinition.SCOPE_PROTOTYPE)
我建议重复使用它们,而不是一直设置字符串文本,因为您可能会做一些拼写错误。
可用于避免文本字符串的常量包括:
ConfigurableBeanFactory.SCOPE_SINGLETON
ConfigurableBeanFactory.SCOPE_PROTOTYPE
WebApplicationContext.SCOPE_REQUEST
WebApplicationContext.SCOPE_SESSION