在PlayFramework2.4之前,我对singleton类使用了create,现在我发现可以使用@Singleton注释来实现单例。
但是,有什么区别呢?
是否仅用于使用带有@Inject()的依赖项注入?
我担心带有依赖注入的PlayFramework2.4以一种不必要的复杂方式进入。
发布于 2015-06-15 07:21:47
@Singleton是JSR 330标准的一部分,实际上只用于依赖注入。它告诉您的DI框架只创建给定类的一个实例,并在应用程序中使用该单个实例。从医生那里:
每次需要组件时都会创建新实例。如果组件不止一次使用,则默认情况下将创建该组件的多个实例。如果只需要组件的单个实例,则需要将其标记为单个实例。
您可以将其视为只创建一个实例的DI框架的指令。没有什么能阻止您使用@Singleton手工创建多个new注释类。
相反,scala中的Singleton对象是真正的单例,不能手工实例化。
https://stackoverflow.com/questions/30827336
复制相似问题