Jakarta ee 防止手动实例化@ApplicationScoped CDI托管bean

Jakarta ee 防止手动实例化@ApplicationScoped CDI托管bean,jakarta-ee,ejb,cdi,java-ee-6,Jakarta Ee,Ejb,Cdi,Java Ee 6,我的JavaEE应用程序中有一个单例类。 我通过使用@ApplicationScoped注释类并让CDI处理所有事情来实现这一点 我的问题是,既然CDI要求我有一个非私有的无参数构造函数,我是否可以防止意外手动实例化这个类 “经典”非CDI解决方案将有一个私有构造函数、一个静态实例字段和一个返回此实例的静态工厂方法。您可以使用您提到的“经典”非CDI解决方案,然后注释工厂方法(或静态最终字段)有了@products我想我必须仔细阅读@products的工作原理。我是否需要此解决方案的@Appli

我的JavaEE应用程序中有一个单例类。 我通过使用
@ApplicationScoped
注释类并让CDI处理所有事情来实现这一点

我的问题是,既然CDI要求我有一个非私有的无参数构造函数,我是否可以防止意外手动实例化这个类


“经典”非CDI解决方案将有一个私有构造函数、一个静态
实例
字段和一个返回此实例的静态工厂方法。

您可以使用您提到的“经典”非CDI解决方案,然后注释工厂方法(或静态最终字段)有了
@products

我想我必须仔细阅读
@products
的工作原理。我是否需要此解决方案的
@ApplicationScoped
?如果
@products
方法总是返回相同的实例(因为CDI应该控制实例的创建和销毁),CDI框架不会感到困惑吗?