【问题标题】:Spring scope references as enums? [duplicate]Spring范围引用作为枚举? [复制]
【发布时间】:2014-02-19 22:46:52
【问题描述】:

也许我遗漏了什么,但没有任何类提供Scope.PROTOTYPE, Scope.SINGLETON 静态引用吗?

或者我是否总是必须使用非类型安全的字符串作为作用域?

@Scope("prototype")
@Scope("singleton")

【问题讨论】:

    标签: java spring scope


    【解决方案1】:

    根据Scope 的文档,value 元素的类型为String,而不是某个枚举常量。因此,我们正在搜索一个类,其中暴露了 value 元素的可能值。

    BeanDefinition 是您要查找的课程。它提供了几个public static String 字段,但您可能对这两个感兴趣:

    SCOPE_SINGLETON
    SCOPE_PROTOTYPE
    

    例如,它们可以像这样使用:

    @Scope(value = BeanDefinition.SCOPE_PROTOTYPE)
    

    我建议重新使用它们,而不是一直设置字符串文字,因为你可能会打错字。

    【讨论】:

      【解决方案2】:

      可以用来避免字面字符串的常量是:

      ConfigurableBeanFactory.SCOPE_SINGLETON 
      ConfigurableBeanFactory.SCOPE_PROTOTYPE
      WebApplicationContext.SCOPE_REQUEST
      WebApplicationContext.SCOPE_SESSION
      

      来源:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Scope.html

      【讨论】:

      • 这应该被标记为答案。
      • 同意,它的信息更丰富,也可以参考 spring javadocs
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多