当前位置: 首页 > 面试题库 >

什么是无作用域bean,什么时候使用它?

薛英卫
2023-03-14
问题内容

有人可以解释什么是无作用域及其目的吗?

假设我有一个豆子

request scope as r1

session scope as s1

application scope a1

并说我没有将任何作用域bean n1注入到上述每个作用域中,然后我发现当实例化其父bean [r1 / s1 / a1]时,将为每个父bean实例化n1。

由于a1是应用程序作用域,因此a1中的作用域bean在整个a1中都不可用。直到不销毁s1并再次创建s1时,s1中的scope Bean才可用。

这是正确的吗?

以及使用它的目的是什么?只是为了避免自己创造这样的豆子?

非常感谢


问题答案:

将在每个引用该bean的EL表达式上创建带有<managed-bean-scope>of
none@NoneScoped批注的bean。JSF并未将其存储在任何地方。如有必要,调用者必须自己存储评估后的引用。

例如,视图中的以下内容

<p>#{noneScopedBean.someProperty}</p>
<p>#{noneScopedBean.someProperty}</p>
<p>#{noneScopedBean.someProperty}</p>

在无作用域的bean上,在请求期间将 构造 bean 3(三)次。对bean的每次访问都会给出一个完全独立的bean,在访问属性后立即将其废弃。

但是,以下示例包含一个会话范围的Bean

@ManagedProperty("#{noneScopedBean}")
private NoneScopedBean noneScopedBean;

只要会话范围的Bean实例都可以使用。您只应确保您#{sessionScopedBean.noneScopedBean.someProperty}改为在视图中访问它。

因此,当您希望无范围数据作为任意Bean中的托管属性可用时,它可能会很有用。



 类似资料:
  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制

  • 问题内容: 我想知道我什么时候应该在Spring中准确使用范围?我了解,如果需要Bean,则返回相同的对象实例。 那我们为什么要考虑呢? 通过示例进行解释将有助于您理解其必要性。 问题答案: 要明确简单的定义: 原型范围=每次注入/查找新对象时都会创建一个。每次都会使用new 。 单例范围=每次注入/查找相同对象时,都会返回该对象。在这里它将实例化一个实例,然后每次返回它。 原型bean是在使用时

  • 问题内容: 这个bean的“状态”: 使用ajax“成功”回调通过电线发送: 这里需要注释@JsonProperty吗?使用它的好处是什么?我想我可以删除此注释而不会引起任何副作用。 在https://github.com/FasterXML/jackson-annotations/wiki/Jackson- Annotations 上阅读有关此注释的信息我不知道何时需要使用此注释? 问题答案:

  • 问题内容: 我有一个将客户发送到另一个站点来处理付款的应用程序。客户之外的另一个站点在我们的服务器上调用一个页面,让我们知道付款的状态。被调用页面会检查付款应用程序提供的参数,并检查我们是否知道该交易。然后,它更新数据库以反映状态。这一切都无需与客户进行任何互动即可完成。 我个人选择将此功能实现为JSP,因为将文件拖放到文件系统中比编译和打包文件然后将条目添加到配置文件中要容易得多。 考虑到页面的

  • 问题内容: 我怎么能说: 为什么函数调用中不需要括号,而最后一行呢? 问题答案: 是一个功能 调用该函数并产生该函数返回的任何值。 setTimeout的目的是在一段时间后运行代码。你需要的功能只是传递给它(这样的setTimeout可以自称在适当的时候函数),因为如果你将它传递给setTimeout的前调用的函数(用括号),将执行 现在 而不是1秒后,。

  • 本文向大家介绍什么时候用delegate,什么时候用Notification?相关面试题,主要包含被问及什么时候用delegate,什么时候用Notification?时的应答技巧和注意事项,需要的朋友参考一下 答:delegate针对one-to-one关系,并且reciever可以返回值 给sender,notification 可以针对one-to-one/many/none,recieve