微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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框架使用的请求属性和数据结构.

原文地址:https://www.jb51.cc/java/128906.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐