0 0

spring @cacheable注解 多次调用数据翻倍5

spring的版本是3.2,项目是springmvc+mybatis

dao中的代码

@Cacheable(value="cacheTest")
public List<TreeJson> findTreeJson() {
    System.out.println("cache miss");
    return getSqlSession().selectList(getNameSpace() + ".findTreeJson");
}

spring-ehcache.xml配置
<cache:annotation-driven cache-manager="cacheManager"/>
<bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:configLocation="classpath:ehcache.xml" />
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" p:cacheManager-ref="cacheManagerFactory" />

ehcache.xml配置
<cache name="cacheTest" maxElementsInMemory="50000" maxElementsOnDisk="0" eternal="false" overflowToDisk="false" diskPersistent="false" diskSpoolBufferSizeMB="50" timeToIdleSeconds="0" timeToLiveSeconds="3600" memoryStoreEvictionPolicy="LFU" clearOnFlush="true"  />

我在service中调用dao中上面那个方法,调用一次list返回的数据就多一倍,而且缓存的命中率是+2,不是+1  求解(我的问题和http://www.iteye.com/problems/94275类似)
2014年8月03日 15:27
  • 大小: 9.3 KB

2个答案 按时间排序 按投票排序

0 0

是不是dao scope是prototype而不是prototype引起的 ?

2014年8月06日 17:49
0 0

难道不是在service层里面获取吗

2014年8月04日 09:07

相关推荐

    java之SpringCache之@Cacheable注解的说明使用

    这里面说的“相同参数”一定要正确理解,也就是说同一个方法使用了@Cacheable注解,但是有不同的参数组合来调用这个方法,则会才产生你的组合数个key来存储缓存数据! 好了,接下来我们看一下,这注解的每个参数...

    3.1、spring boot redis注解缓存Cacheable (value) 1

    @Cacheable注解是spring boot 中最常用的注解缓存机制之一。它用于将方法的返回值缓存在redis中,以便在下次调用时可以直接从缓存中获取结果。 例如,在UserServiceImpl中使用@Cacheable注解缓存getUser方法的...

    详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

    Spring 缓存注解 @Cacheable、@CachePut、@CacheEvict 使用详解 Spring 框架提供了三个缓存注解:@Cacheable、@CachePut 和 @CacheEvict,这三个注解可以帮助开发者简化缓存的使用,提高应用程序的性能。在本文中,...

    spring-cache(通过key值更新缓存)

    通过在方法上使用`@Cacheable`、`@CacheEvict`和`@Caching`等注解,可以轻松地控制缓存的存取和清除。 1. **@Cacheable**:这个注解用于标记一个方法,表示其结果应该被缓存。例如: ```java @Cacheable(value =...

    spring_cacheable_demo_v1.zip

    首先,`@Cacheable` 是 Spring 框架的 `org.springframework.cache.annotation` 包下的注解,用于标记在业务逻辑中可能会有重复调用且耗时的操作的方法。当一个被 `@Cacheable` 注解的方法被调用时,Spring 会检查...

    spring缓存机制-根据condition加入缓存(三)

    ### 二、@Cacheable注解 `@Cacheable`是Spring缓存中最常用的注解,用于标记一个方法,表示该方法的返回结果应该被缓存。它的基本用法如下: ```java @Cacheable(value = "myCache", key = "#id") public MyObject...

    Spring集成Redis进行数据缓存

    本文将深入探讨如何使用SpringMVC结合Redis实现数据缓存,以及Spring是如何通过注解来简化缓存管理的。 首先,Redis是一个开源的、基于内存的数据存储系统,常用于做高速缓存,它支持多种数据结构如字符串、哈希、...

    java学习之SpringCache之@CachePut注解的使用说明

    有的时候我们可以将@CachePut就是一个触发器,虽然这样说不太正确,但是很有助于我们的理解,当我们每次调用被他注解的方法的时候,就会触发这个触发器,来清除对应指定key的缓存或者是更新缓存。 可看一下两个注解...

    spring和Struts2注解文档

    在IT领域,特别是Java开发框架中,Spring和Struts2都是极为重要的技术栈,它们各自通过注解(Annotation)机制提供了强大的功能扩展性和代码简洁性。以下是对Spring和Struts2注解的深入解析和使用指南。 ### Spring...

    在Spring体系中使用redis.spring集成redis缓存

    1. **@Cacheable**:在方法上使用`@Cacheable`注解,当方法被调用时,结果会被自动缓存。例如: ```java @Cacheable(value = "books", key = "#isbn") public Book findBookByIsbn(String isbn) { // 查询数据库 }...

    Spring基于注解的缓存配置--web应用实例

    2. **@Cacheable注解** 这个注解是Spring Cache的核心,用于标记那些可缓存的方法。当一个带有@Cacheable的方法被调用时,Spring会检查是否有已缓存的结果。如果有,它会立即返回,而不会执行方法本身。如果缓存中...

    测试样例源码springlearn_20191229.zip

    而Spring框架中的缓存管理机制,如@Cacheable注解,则是提高应用性能的重要手段。本文将围绕"springlearn_20191229.zip"这个压缩包中的源码,详细阐述如何在SpringBoot项目中使用@Cacheable进行缓存操作,并分析在...

    Spring + Ehcache 注解形式配置

    在这个测试类中,可以编写测试用例来验证缓存是否正确工作,比如检查多次调用`getUserById`时是否重复查询数据库,以及在调用`deleteUserById`后是否能从缓存中移除对应的用户。 总结来说,通过在Spring中使用...

    Spring2.5_注解介绍(3.0通用)

    Spring框架在2.5版本引入了对注解的广泛支持,这一特性在后续的3.0版本中得到了进一步增强,并且成为了Spring应用的核心部分。注解的使用极大地简化了Spring配置,提高了代码的可读性和可维护性。下面将详细介绍其中...

    Java课程实验 Spring Boot 缓存管理

    例如,使用@Cacheable注解来指定一个方法的结果应该被缓存。 @Cacheable:将方法的结果缓存起来,下次调用该方法时,如果传入的参数相同,则直接返回缓存中的数据。 @CacheEvict:清除指定方法的缓存数据,可以配置...

    redis-cluster和spring集成,基于cache注解

    Spring 提供了 `@Cacheable`、`@CacheEvict` 和 `@CachePut` 等注解,用于在方法级别进行缓存操作,简化了缓存管理。 **一、Redis 集群(redis-cluster)** Redis 集群是 Redis 的分布式实现,它通过将数据分割到...

    Spring整合Redis用作缓存-注解方式

    1. `@Cacheable`:在方法上使用此注解,当方法被调用时,其结果会被缓存。如果缓存中存在对应键值,将直接返回缓存数据,否则执行方法并存入缓存。 ```java @Cacheable(value = "myCache", key = "#id") public ...

    spring3.2+ehcache 注解使用

    Spring提供了`@Cacheable`、`@CacheEvict`和`@CachePut`三个主要注解。 1. `@Cacheable`: 这个注解用于标记那些可以被缓存的方法。当方法被调用时,如果缓存中存在结果,那么将直接返回缓存中的数据,而不会执行...

    Spring 使用注解配置使用ehcache

    在Spring中,我们可以通过`@Cacheable`、`@CacheEvict`和`@Caching`等注解来实现缓存功能。例如,在一个服务类中,我们可以这样使用: ```java import org.springframework.cache.annotation.Cacheable; import org...

Global site tag (gtag.js) - Google Analytics