Playframework 2.4 单例,对象
Playframework 2.4 Singletons, Object
在 Playframework 2.4 之前,我使用为单例创建对象 class,现在我发现单例可以使用 @Singleton 注释实现。
但是,有什么区别呢?
仅适用于使用 @Inject() 进行依赖注入吗?
恐怕带有依赖注入的 Playframework 2.4 以一种不必要的复杂方式进入。
@Singleton
是 JSR 330 标准的一部分,确实仅用于依赖注入。它告诉您的 DI 框架只创建给定 class 的一个实例,并在您的应用程序中使用该单个实例。来自文档:
New instances are created every time a component is needed. If a component is used more than once, then, by default, multiple instances of the component will be created. If you only want a single instance of a component then you need to mark it as a singleton.
您可以将其视为对您的 DI 框架的指令,以仅创建一个实例。没有什么能阻止您使用 new
.
手动创建多个 @Singleton
注释 classes
相反,scala 中的单例对象是真正的单例,无法手动实例化。
在 Playframework 2.4 之前,我使用为单例创建对象 class,现在我发现单例可以使用 @Singleton 注释实现。
但是,有什么区别呢?
仅适用于使用 @Inject() 进行依赖注入吗?
恐怕带有依赖注入的 Playframework 2.4 以一种不必要的复杂方式进入。
@Singleton
是 JSR 330 标准的一部分,确实仅用于依赖注入。它告诉您的 DI 框架只创建给定 class 的一个实例,并在您的应用程序中使用该单个实例。来自文档:
New instances are created every time a component is needed. If a component is used more than once, then, by default, multiple instances of the component will be created. If you only want a single instance of a component then you need to mark it as a singleton.
您可以将其视为对您的 DI 框架的指令,以仅创建一个实例。没有什么能阻止您使用 new
.
@Singleton
注释 classes
相反,scala 中的单例对象是真正的单例,无法手动实例化。