Service层为什么要单例
来源:互联网 发布:苹果电脑装windows系统 编辑:程序博客网 时间:2024/05/17 09:05
在开发时,共同遵循的原则都是Service和Dao层都是单例的,Dao好理解,因为Dao只是与数据库的交互。但是为什么Service也是单例?例如,以下的这段Service的代码,如果单例的话,不是存在同步的问题么?如果多个线程同时访问i变量的话,就会容易造成脏数据以及误读以及一下不可预计的错误。
经过实践证明,虽然这个Service是单例的,但是每个线程调用它这个方法的时候,里面的i变量都是独立的。也就是说,每个线程都有独立的i变量,他们之间互相不影响。另外,因为Service层中的非静态成员变量一般只是Dao类,因此Service使用单例模式也是毫无异议的。
PS:
什么时候使用单例,什么时候使用多例?当类中存在非静态变量的时候的,应该通过注解@Scope("prototype"),将其设置为多例模式。相反,视状况而定。例如,在SSH中,Action层使用多例(Action层为什么使用多例),在SSM中,Controller层可使用单例或者多例( springmvc控制器controller单例问题)。
阅读全文
0 0
- Service层为什么要单例
- 为什么Service层最好不要和Dao层参数同名
- java中dao层和service层的区别,为什么要用service?
- java中dao层和service层的区别,为什么要用service?
- java中dao层和service层的区别,为什么要用service?
- SSH中为什么action需要用多例而dao层和service层为什么就用单例就可以
- 为什么struts2调用service层在spring里不用配置?
- 事务为什么加在service层而不加在dao层
- service层
- 为什么service层要打成war包而不打成jar包?
- 整合Spring时Service层为什么不做全局包扫描详解
- 为什么Controller层注入的是Service接口,而不是ServiceImpl实现类
- 整合Spring时Service层为什么不做全局包扫描详解
- 整合Spring时Service层为什么不做全局包扫描详解
- 为什么action使用的多例模式,但是service层和dao层用的是单例模式
- dao层和service层
- dao层和service层
- Service层和Dao层
- UE4中Pitch、yaw、roll是什么?
- Spring Cloud Hystrix Dashboard
- Android动画之Activity,View背景的3D缩小
- [LWIP学习]--accept函数分析
- WebService学习(一)
- Service层为什么要单例
- 常用开发工具及开源库
- 最新扫地机器人 性价比排行榜!
- [LWIP学习]--recv,recvfrom,recvmsg函数分析
- verilog学习一
- [LWIP学习]--connect函数分析
- [LWIP学习]--send,sendto,sendmsg函数分析
- link和@import有什么区别?
- ES6 —(Generator 函数的语法)