我的Java EE应用程序中有一个Singleton类。
我通过使用@ApplicationScoped
注释课程并让CDI处理所有内容来实现这一目标。
我的问题是我是否可以防止意外手动实例化此类,因为CDI要求我有一个非私有的无参数构造函数?
"经典"非CDI解决方案将具有私有构造函数,静态INSTANCE
字段和返回此实例的静态工厂方法。
答案 0 :(得分:3)
您可以使用" classic"您提到的非CDI解决方案,然后使用@Produces
注释工厂方法(或静态最终字段)。