`
jiming
  • 浏览: 274165 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Re: 讨论一下 cache 应该放在 service 层还是 dao 层吧

    博客分类:
  • java
阅读更多
Cache 这个东西,看似简单,但是具体实施起来却是很麻烦,有许多方面的因素需要考虑,很多实施不好的 cache 会成为系统故障和维护噩梦的重要源头。 所以我的原则是,只在一个层面上提供 cache 功能,其它的层面都不提供,以避免其复杂性并且降低耦合性。 就像各位所讲到的那样,cache 包括很多层面,而且会有一些特殊情况,这些应改需要根据具体情况具体分析了。[color=blue]这里我主要想讨论一下我们大多数情况下用到的的 cache 方案。[/color][color=orange]页面 cache 也很重要,不过不再这里讨论了。[/color] Allen 说: [quote] 首先,你所说的cache应该指的就是对象的缓存,确切地说应该是持久化对象的缓存。那么这个“service 层的object cache”肯定得由你们自己来写了,我想这很难保证你们的cache使用效果会比底层下面“不是很完善的”hibernate 和 iBatis 提供的cache更好看。 [/quote] 这个说的非常对,实现自己的缓存方案比较麻烦一点,但并不是非常困难的事情,而且一个方案定下来之后可以不断地重用。 Allen 说: [quote] 再者,你们怎么保证“service 层的object cache”可以完好地与各不相同的“其它 dao 的技术方案”匹配上呢?而且又用什么机制保证“service 层的object cache”和数据库是同步的呢?直接连DB来获得更新了的碎片?或者专门写一些DAO层的接口,通过各自的实现来搞? [/quote] 我的想法是 DAO 只做 DAO 的工作,对开发应用的程序员提供的接口只有 service,不允许直接操作 DAO。这样应该就可以实现了。
分享到:
评论

相关推荐

    第5关:直接相联cache设计.txt

    直接相联cache是最简单的一种cache组织形式,其中每个主内存块只能映射到cache中的一个特定位置。 **特点**: - 每个主内存块只能映射到cache的一个固定位置。 - 如果新的内存块要替换掉已存在的块时,将直接覆盖该...

    cache-api-1.1.1-API文档-中文版.zip

    赠送jar包:cache-api-1.1.1.jar; 赠送原API文档:cache-api-1.1.1-javadoc.jar; 赠送源代码:cache-api-1.1.1-sources.jar; 赠送Maven依赖信息文件:cache-api-1.1.1.pom; 包含翻译后的API文档:cache-api-...

    shiro-cache-1.4.0-API文档-中英对照版.zip

    赠送jar包:shiro-cache-1.4.0.jar; 赠送原API文档:shiro-cache-1.4.0-javadoc.jar; 赠送源代码:shiro-cache-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-cache-1.4.0.pom; 包含翻译后的API文档:shiro-...

    代码生成器实现的Entity,Dao,Service,Controller,JSP神器(含代码附件)

    代码生成器是一种强大的工具,它能够自动生成常见的软件架构组件,如Entity、DAO、Service、Controller以及JSP页面,极大地提高了开发效率。在Java开发领域,这类工具通常用于快速构建基于MVC(Model-View-...

    https请求出现net::ERR-CACHE-MISS

    https请求出现net::ERR-CACHE-MISS

    Mybatis(dao)缓存|mybatis+redis(dao+service)缓存验证

    ### Mybatis(dao)缓存与mybatis+redis(dao+service)缓存验证 #### 一、Mybatis缓存机制概述 Mybatis提供了一级缓存和二级缓存两种缓存机制,这两种缓存机制有助于提高数据访问的效率。 **1.1 一级缓存** 一级...

    logisim及全相联cache设计.rar

    全相联Cache( Fully-Associative Cache)是Cache组织方式的一种,与直接映射Cache和组相联Cache不同,它的每一个块都可以映射到Cache的任何一个位置上,这提供了更大的灵活性,但也带来了更高的复杂性。 全相联...

    Cache—主存两层存贮层模拟器

    Cache—主存两层存贮层模拟器,自己写的,老师检查过了还不错……

    实验五: 虚拟Cache与伪相联Cache

    ### 实验五:虚拟Cache与伪相联Cache #### 实验背景与目标 在现代计算机系统中,提高数据访问速度是提升整体系统性能的关键因素之一。为了缓解CPU与主存之间的速度差异,引入了高速缓存(Cache)技术。本实验旨在...

    shiro-cache-1.4.0-API文档-中文版.zip

    赠送jar包:shiro-cache-1.4.0.jar; 赠送原API文档:shiro-cache-1.4.0-javadoc.jar; 赠送源代码:shiro-cache-1.4.0-sources.jar; 赠送Maven依赖信息文件:shiro-cache-1.4.0.pom; 包含翻译后的API文档:shiro-...

    Java SSM service层配置文件

    6. **与其它配置文件的关联**:`applicationContext-service.xml`通常与`applicationContext-dao.xml`(用于配置DAO层)、`applicationContext-web.xml`(用于配置Web层)等共同工作,形成完整的SSM应用配置。...

    timesten系列五:如何定义cache,和后台oracle数据库同步数据

    - Timesten的Cache Agent会定期获取这些更新信息,并同步到Timesten中。 2. **从Timesten到Oracle** - Timesten的操作日志会记录所有对数据的更改操作。 - Cache Agent会分析这些日志,并将相关的DML操作同步回...

    jdbc连接cache的demo及jar包,自己备份.rar

    标题"jdbc连接cache的demo及jar包,自己备份.rar"指出这是一个关于使用JDBC(Java Database Connectivity)连接Cache数据库的示例项目,其中包含了必要的jar包,并且用户已经将其作为个人备份保存。这里的“Cache”...

    等待事件row cache lock,latch row cache objects处理过程.txt

    等待事件row cache lock,latch row cache objects处理过程

    在ASP.NET 2.0中操作数据:使用SQL Cache Dependencies

    在ASP.NET 2.0中操作数据:使用SQL Cache Dependencies

    第6关:4路组相连cache设计.txt

    虽然提供的XML内容没有直接涉及到Cache的设计细节,但我们可以基于文件的标题、描述以及标签来构建关于4路组相连Cache设计的相关知识点。 ### 4路组相连Cache设计概述 在计算机科学领域,缓存(Cache)是一种高速...

    linux内核2.6cache源代码

    Linux内核2.6版本中的缓存(Cache)机制是操作系统设计的重要组成部分,它极大地提升了系统性能,尤其是在处理大量数据时。在这个版本的内核中,缓存的设计和实现已经相当成熟,涉及到内存管理、I/O操作、进程调度等...

    cache-api-1.1.1-API文档-中英对照版.zip

    赠送jar包:cache-api-1.1.1.jar; 赠送原API文档:cache-api-1.1.1-javadoc.jar; 赠送源代码:cache-api-1.1.1-sources.jar; 赠送Maven依赖信息文件:cache-api-1.1.1.pom; 包含翻译后的API文档:cache-api-...

    系统结构实验 Cache--主存、虚拟存储器模拟) 存贮层次模拟器

    在IT领域,尤其是在计算机系统架构中,理解和模拟Cache与主存、虚拟存储器的工作机制是至关重要的。这个实验旨在帮助我们深入理解存储层次结构及其优化技术。以下将详细阐述相关知识点: 1. **Cache**: Cache是...

Global site tag (gtag.js) - Google Analytics