我试图通过其名称找出bean的范围.
到目前为止我发现的是:
BeanFactory#isPrototype(String name)
#isSingleton(String name)
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我想知道bean是否在请求范围内.我可以使用Spring框架中的一些内部方法,但我想知道是否有一种"正确"的方法.
好问题。
没有方法isRequst()inBeanFactory因为请求范围仅与 web 相关。
我只是试图找到方法来做到这一点,但失败了。因此,如果您使用注释,我可以向您建议一个可行的解决方法。当你得到 bean 实例时说bean.getClass().getAnnotation(Scope.class)。如果这返回Scopecall value()。
这不是“科学”的方法,但希望对你来说足够好。
编辑
其他方法如下。请求范围 bean 存储在请求属性中。我现在不记得它的名字了,但你可以很容易地自己找到它,只需在调试器中检查你的请求。然后检查对您的 bean 的引用是否存在。这种方法可能更好,但需要一些努力来调查 Spring 框架使用的请求属性和数据结构。
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |