SSH中为什么action需要用多例而dao层和service层为什么就用单例就可以
很简单的道理,就跟你自来水一样,有很多的水龙头,但水管只有一个。
为啥要很多水龙头,因为有多个人同时用;为了避免长队,只能这样来分担压力
为啥只有一个水管,易维护,集中处理。
使用单例,是由于没必要每个请求都新建一个对象,这样既浪费CPU又浪费内存;之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理。
先来说说Java web中的单例应用场景:数据库连接池就是单例模式,有且仅有一个连接池管理者,管理多个连接池对象。我们常用的service和dao层的对象通常都是 单例的(由于其所有的请求都用一个对象来处理),而struts2中的action则是多例,由于每个请求是用一个新的对象来处理的(因为action本 身含有请求参数的值,即可改变的状态)。 log4j日志记录也是单例模式,因为从始至终都仅维护一个对象。(应用程序的日志应用,一般都何用单例模式实现,这一般是由于共享的日志文件一直处于打 开状态,因为只能有一个实例去操作,否则内容不好追加)。
SSH中为什么action需要用多例而dao层和service层为什么就用单例就可以相关推荐
- SSM框架中各层的含义和联系(Pojos层、Dao层、Service层、Action层......)
一.pojo层 即Plain Ordinary Java Object,也有人称其为model.domain.bean等,pojo层是对应的数据库表的实体类. 二.1.持久层:Dao层(Mapper) ...
- java的dao层_Java中Dao层、Action层、Service层、Controller层-Fun言
Action/Service/DAO简介 Action 管理业务(Service)调度和管理跳转 Service 具体的业务功能 Action只负责管理,而Service负责实施 DAO只完成增删改查 ...
- Java中dao层、service层、controller层、entity层和view层的概述
目录 DAO层:(持久层)主要与数据库进行交互 Service层:(业务层 )控制业务 Controler层:(控制层 )控制业务逻辑 Entity层: (实体层 )数据库在项目中的类 View层: ...
- SpringBoot框架中的DAO(mapper)层、Entity层、Service层、Controller层
Entity层:实体层 数据库在项目中的类 Entity层是实体层,也就是所谓的model,也称为pojo层,是数据库在项目中的类,该文件包含实体类的属性和对应属性的set.get方法: DAO层: ...
- 对SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层等层的理解
SSM 是 Spring + SpringMVC + Mybatis集成的框架. MVC即model view controller.(模型,视图,控制器) 一.entity层(model层,doma ...
- Spring Boot中DAO层和Service层等理解
Spring Boot中DAO等层的理解 1 DAO层 2 Service层 3 Controller层 4 Entity层 5 View层 6 Utils层 总结 目前在公司实习python算法研究 ...
- java的dao层_Java中DAO层、Service层和Controller层的区别
DAO层: DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封 ...
- java action dao_java中Action层、Service层和Dao层的功能区分
一.Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DA ...
- 表现层(jsp)、持久层(类似dao)、业务层(逻辑层、service层)、模型(javabean)、控制层(action)...
转自:http://www.blogjava.net/jiabao/archive/2007/04/08/109189.html 为了实现web层(struts)和持久层(Hibernate)之间的松 ...
最新文章
- 将PDF Expert设置为默认打开程序的操作步骤
- SAP TABLECONTROL 搜索帮助相关设置
- 你的gpu驱动程序不满足_英特尔图形驱动程序现在在Windows/Linux之间共享约60%的代码库...
- 如何在三个月掌握三年的经验
- statistics_level参数的介绍
- Java黑皮书课后题第6章:**6.22(数学:平方根的近似求法)实现Math类中dsqrt方法的技术:巴比伦法nextGuess = (lastGuess + n / lastGuess) / 2
- postgresql如何实现group_concat功能
- 机器学习线性回归案例讲解_09机器学习实战之简单线性回归
- how to learn html5,HTML5与CSS基础
- scrapy splash 爬取图片学习心得
- jemter的竞品分析
- vue-cli@4安装Element-ui
- 敏捷开发_敏捷开发和迭代开发的异同分析
- 日均请求量1.6万亿次背后,DNSPod的秘密-国密DoH篇
- wordpress各种获取url函数总结
- MegaRAID Storage Manager RAID管理工具基本操作
- 计算机二级C语言考试模拟系统+真题题库软件下载
- 2022年下半年网络工程师上午真题及答案解析
- win7 matlab 7.0,win7环境下使用matlab7.0的方法
- bitcoin中私钥、公钥、钱包地址之间的关系