取决于谁在管理 bean。
If it's JSF via @ManagedBean https://docs.oracle.com/javaee/7/api/javax/faces/bean/ManagedBean.html,那么它默认为@RequestScoped https://docs.oracle.com/javaee/7/api/javax/faces/bean/RequestScoped.html,正如在javadoc https://docs.oracle.com/javaee/7/api/javax/faces/bean/ManagedBean.html:
如果省略范围注释,则必须像处理 bean 一样处理 beanRequestScoped
注释存在
If it's CDI via @Named https://docs.oracle.com/javaee/7/api/javax/inject/Named.html,那么它默认为@Dependent https://docs.oracle.com/javaee/7/api/javax/enterprise/context/Dependent.html,如中提到的焊接文档 http://docs.jboss.org/weld/reference/latest/en-US/html/scopescontexts.html#_the_dependent_pseudo_scope:
最后,CDI 具有所谓的依赖伪作用域。这是未显式声明作用域类型的 bean 的默认作用域。
效果是在每个 EL 表达式上新创建 bean 实例。因此,想象一个登录表单,其中有两个引用 bean 属性的输入字段和一个引用 bean 操作的命令按钮,因此总共有三个 EL 表达式,那么将有效地创建三个实例。一张设置了用户名,一张设置了密码,一张调用了操作。实际上,这与 JSF 的行为相同@NoneScoped https://docs.oracle.com/javaee/7/api/javax/faces/bean/NoneScoped.html。这证实了您所看到的症状。
If it's Spring via @Component http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Component.html,那么它默认为@Scope("singleton") http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Scope.html,如中提到的javadoc http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Scope.html#value--:
默认:"singleton"
实际上,这与 JSF 的行为相同@ApplicationScoped http://docs.oracle.com/javaee/6/api/javax/faces/bean/ApplicationScoped.html和CDI@ApplicationScoped http://docs.oracle.com/javaee/6/api/javax/enterprise/context/ApplicationScoped.html.
Netbeans 与此无关。它只是一个像记事本一样的编辑工具,但具有 1000 多个额外功能。
也可以看看:
- 什么是无作用域 bean 以及何时使用它? https://stackoverflow.com/questions/3086896/what-is-none-scope-bean-and-when-to-use-it/
- 如何选择合适的bean范围? https://stackoverflow.com/questions/7031885/how-to-choose-the-right-bean-scope/