哪个在Spring应用程序中实现单例更好:bean还是静态字段?

时间:2016-01-26 22:52:33

标签: spring spring-mvc

我正在开发Spring MVC应用程序,我需要为某种实用程序实现单例模式,例如:imageuploader等。

我的问题是:以什么方式为这些实用程序实现单例,为这些类初始化bean 并注入我需要的控制器,服务,DAO?或者使用 static单例的字段实现,以保持此类的实例?

2 个答案:

答案 0 :(得分:2)

使用Spring bean可以轻松地在单元测试中注入模拟。但是,您只能从其他Spring bean(或Spring bean创建的对象中访问它)访问它。

另请参阅此问题中的讨论:Difference between static class and singleton pattern?

传统上,您使用PropertyPlaceholderConfigurer将属性文件中的配置注入Spring网络应用程序。 This blog讨论了使用Spring实现此目的的各种新方法。

答案 1 :(得分:2)

首先,尽量避免单身,因为它被认为是bad practice。与非单例实例相比,它们与其他实例的交互也很难测试和验证。

如果你绝对需要它,我建议你使用Spring bean,这样你就可以利用自动装配机制和Spring的bean生命周期。

有关详细信息,请参阅Spring参考文档的Beans部分。

相关问题