java – 如何以编程方式确定bean的范围

前端之家收集整理的这篇文章主要介绍了java – 如何以编程方式确定bean的范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图通过其名称找出bean的范围.

到目前为止我发现的是:

beanfactory#isPrototype(String name)
           #isSingleton(String name)

在我的情况下,我想知道bean是否在请求范围内.我可以使用Spring框架中的一些内部方法,但我想知道是否有“正确”的方法.

解决方法

好问题.

beanfactory中没有isRequst()方法,因为请求范围仅与Web相关.

我只是试图找到这样做的方法而失败了.所以,如果你使用注释,我可以建议你一个可行的解决方法.当你获得bean实例时说bean.getClass().getAnnotation(Scope.class).如果这返回Scope调用值().

这不是“科学”方法,但希望对你来说足够好.

编辑

其他方法如下.请求范围bean存储在请求属性中.我现在不记得它的名字,但你可以自己轻松找到它,只需在调试器中检查你的请求.然后检查对bean的引用是否存在.这种方法可能更好,但需要一些努力来研究Spring框架使用的请求属性和数据结构.

猜你在找的Java相关文章