我有一个Seam组件,其注释如下:
@AutoCreate
@Name("asyncServiceManager")
@Scope(ScopeType.APPLICATION)
public class AsyncServiceManager {
使用它的类配置如下:
@In("#{asyncServiceManager}")
private AsyncServiceManager asyncServiceManager;
运行代码时,我看到每次使用
AsyncServiceManager
实例化该类。正如我用范围APPLICATION注释类时,情况并非如此。我需要这个班成为单身人士。 最佳答案
此外,您可以简单地进行配置。您不需要这个:
@In("#{asyncServiceManager}")
相反,由于您的变量名称与组件名称相同,因此已足够
@In
private AsyncServiceManager asyncServiceManager;
根据组件的使用频率(这是一种优化),可以将其设置为事件范围的组件,在观察到事件时自动创建它,然后在此之后销毁它。
沃尔特