问题标签 [application-scope]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsf - @ApplicationScoped JSF 托管 bean 的并发性
我正在使用 Mojarra 2.2.12,在我们的项目中,我们有一些@ApplicationScoped
bean。例如:
我的问题是我们应该担心新分配值的可见性吗?
我在规范中找不到JSF 基础设施必须同步对@ApplicationScoped
bean 字段的访问。那么,特别是对于 Mojarra 2.2.12,我们应该将该字段声明为volatile
还是显式同步对它的访问?
php - 我应该将应用程序范围变量存储在 PHP 的文件中吗?
我想存储会话之间共享的变量(应用程序范围):
- 它不是特定于用户会话的(所以我不能把它放在 $_SESSION[] 中)。
- 这是一个长期存储(所以我不能使用 APC - Alternative PHP Cache)。
所以,我使用一个文件来存储变量并使用 file_get_contents 和 file_put_contents 函数访问它。
这是一种很好的处理方式还是有其他选择?
jsf - JSF 正在创建 ApplicationScoped bean 的两个实例
我有两个托管 bean,它们都有一个@ApplicationScope
注释:
存储.java:
StorageInitializer.java:
应用程序启动时,StorageInitializer
应将 10 个实例写入存储。其他 bean@RequestScoped
可以访问存储并使工作表可见。他们都有一个
访问Storage
bean。
通过记录哈希,我可以看到有时会得到两个Storage
bean 实例。第一个由 初始化StorageInitializer
。第二个被@RequestScoped
bean 使用并且是空的。
为了解决这个问题,这看起来像是一个竞争条件或计时问题。StorageInitializer.ini()
如果我在一切工作中设置一个断点就可以了。
有任何想法吗?
jsf - 尽管有 @ApplicationScoped 注释,@Injected @ManagedBean 仍被重新初始化
我正在编写一个简单的 JSF 应用程序来转换货币。
有一个Rates
保存数据的Currencies
类,用于管理请求的Manage
类和用于添加新货币的类。我的问题是:我希望将货币作为 Rates 类的属性保留,因此我使用@ApplicationScoped
. 但是我可以看到Rates
每次请求都会重新初始化。这是我的代码Rates
:
以下是它的注入方式:
正如您所看到的,我为 Rates 的属性添加了实例初始化程序,设置currencies
并且每个请求都会打印出文本“HashSet initializing”。
jsf - 应用程序范围 bean 中的实用方法
您认为将所有广泛使用的实用程序方法放在应用程序范围的 bean 中是个好主意吗?
在我正在处理的应用程序的当前实现中,所有实用程序方法(使用字符串、cookie 操作、检查 url、检查用户所在的当前页面等)都放在一个大请求范围的 bean 中,并且引用自每个 xhtml 页面。
如果将实用程序方法放在应用程序范围的 bean 中的方法是好还是坏的选择,我找不到有关 stackoverflow 的任何信息。
为什么我遇到这个想法是需要在更广泛的 bean 中重用这些方法,然后是请求范围的 bean(如视图或会话范围的 bean)。如果我错了,请纠正我,但您应该始终注入相同或更宽范围的 bean,即您不应该在视图范围内注入请求范围 bean。
我认为使用应用程序范围 bean 中的实用程序方法应该是有益的(不会创建任何新对象,将创建一个对象并在所有应用程序中重新使用),但我仍然希望确认或有人告诉我是否这是一种错误的方法,为什么它是错误的。
jakarta-ee - 带有 CDI 和 3rd 方类的 DI:避免构造函数为每个代理构造多次调用业务逻辑
我对 DI 的 EE / CDI 比较陌生,所以也许你们中的一个可以为我的问题提供一些提示:
我有一个第 3 方课程,我想将其注入其他 bean。在春天只需要一些<bean>
声明,它就完成了。使用 cdi 它现在需要一个工厂类:
不幸的是,X 的构造函数调用了相当昂贵的业务逻辑,每次 cdi 创建代理时都会调用它,但我无法更改 X 的行为。这给我留下了以下我不太喜欢的选项:
- 将 X 包装在一些丑陋的
Holder
类中, - 创建一些门面,并且必须将方法委托给
X
还有其他选择吗?
java - 如何在游戏框架(1.x)中创建一个在整个应用程序中共享的对象?
我想在整个 Play 应用程序中创建一个对象实例。我认为这static
不会起作用,因为 Play 使用许多类加载器多次加载同一个类(我通过堆分析确认了这一点)。
是否有类似InitialContext
资源来存储和检索整个应用程序中的对象实例?
java - 春季有申请范围吗?
我在以下博客中看到了“应用程序”范围。这是真的吗?
因为,根据我的冲浪,我知道 spring 只有以下 5 个范围。如果我错了,请纠正我。
- 辛格尔顿
- 原型
- 要求
- 会议
- 全球会议
singleton - WildFly 12 Wicket 7.10 - 为什么只有第一个线程可以访问应用程序?
每个请求都尝试创建单例的新实例,但由于它们使用 Application.get() 而失败并出现错误:
相同的代码适用于 WildFly 8.2 和 Wicket 6.20。所以有两个问题:
- 每个请求处理程序线程的行为就好像它在自己的 JVM 中运行,而不与其他线程共享静态字段。
- 在创建初始请求处理程序线程之后的每个请求处理程序线程都没有附加应用程序。
最小的例子:
主页用途
主页的第一个请求有效。第二次调用在另一个线程中加载并失败
因为 WebApp.get() 抛出
java - 如何在 Application ScopedBean 中刷新数据库数据?
从这篇文章中,我了解到包含 a 的页面StreamedContend
必须与 a 相关ApplicationScoped bean
,但其结果是,如果我在其他页面中修改某些数据(保存在 DB 中),则使用 构建的图像StreamedContent
不会将这些修改带入帐户
豆
xhtml
我的问题是,如何刷新这个 Bean 中的数据,但不是每次都get
刷新图表,因为我可以在这个页面上多次刷新图表,但更像是打开页面时?