加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 03:08:07 所属栏目:Java 来源:网络整理
导读:我试图通过其名称找出bean的范围. 到目前为止我发现的是: BeanFactory#isPrototype(String name) #isSingleton(String name) 在我的情况下,我想知道bean是否在请求范围内.我可以使用Spring框架中的一些内部方法,但我想知道是否有“正确”的方法. 解决方法
我试图通过其名称找出bean的范围.

到目前为止我发现的是:

BeanFactory#isPrototype(String name)
           #isSingleton(String name)

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

解决方法

好问题.

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

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

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

编辑

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读