在Playframework 2.4之前,我使用了创建对象的单例类,现在我看到了Singletons可以使用@Singleton注释实现。
但是,有什么区别?
仅用于使用@Inject()的依赖注入?
我担心带有依赖注入的Playframework 2.4以不必要的复杂方式进入。
答案 0 :(得分:2)
@Singleton
是JSR 330标准的一部分,实际上仅用于依赖注入。它告诉您的DI框架只创建给定类的一个实例,并在您的应用程序中使用该单个实例。来自文档:
每次需要组件时都会创建新实例。如果多次使用某个组件,则默认情况下会创建该组件的多个实例。如果您只想要一个组件的单个实例,那么您需要将其标记为单个实例。
您可以将其视为DI框架的指令,仅创建一个实例。没有什么能阻止您使用@Singleton
手动创建多个new
带注释的类。
scala中的Singleton对象是真正的单例,无法手工实例化。