Spring3.1 Cache注解
依赖jar包:
<!-- simple-spring-memcached --> <dependency> <groupId>com.google.code.simple-spring-memcached</groupId> <artifactId>simple-spring-memcached</artifactId> <version>3.5.0</version> </dependency> <dependency> <groupId>com.google.code.simple-spring-memcached</groupId> <artifactId>xmemcached-provider</artifactId> <version>3.5.0</version> </dependency> <dependency> <groupId>com.googlecode.xmemcached</groupId> <artifactId>xmemcached</artifactId> <version>2.0.0</version> </dependency>
applicationContext-cache-memcached.xml
<!-- 启用缓存注解功能,这个是必须的,否则注解不会生效,另外,该注解一定要声明在spring主配置文件中才会生效 --> <cache:annotation-driven cache-manager="cacheManager" /> <!-- spring自己的换管理器,这里定义了两个缓存位置名称 ,既注解中的value --> <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager"> <property name="caches"> <set> <bean class="org.cpframework.core.cache.memcached.MemcachedCache"> <property name="cache" ref="defaultCache"/> </bean> <bean class="org.cpframework.core.cache.memcached.MemcachedCache"> <property name="cache" ref="commonCache"/> </bean> </set> </property> </bean> <!-- memcached client defaultCache --> <bean name="defaultCache" class="com.google.code.ssm.CacheFactory"> <property name="cacheClientFactory"> <bean class="com.google.code.ssm.providers.xmemcached.MemcacheClientFactoryImpl" /> </property> <property name="addressProvider"> <bean class="com.google.code.ssm.config.DefaultAddressProvider"> <property name="address" value="192.168.xx.xx:11211" /> </bean> </property> <property name="configuration"> <bean class="com.google.code.ssm.providers.CacheConfiguration"> <property name="consistentHashing" value="true" /> </bean> </property> <property name="cacheName" value="default"/> </bean> <!-- memcached client commonCache --> <bean name="commonCache" class="com.google.code.ssm.CacheFactory"> <property name="cacheClientFactory"> <bean class="com.google.code.ssm.providers.xmemcached.MemcacheClientFactoryImpl" /> </property> <property name="addressProvider"> <bean class="com.google.code.ssm.config.DefaultAddressProvider"> <property name="address" value="192.168.xx.xx:11211" /> </bean> </property> <property name="configuration"> <bean class="com.google.code.ssm.providers.CacheConfiguration"> <property name="consistentHashing" value="true" /> </bean> </property> <property name="cacheName" value="commonCache"/> </bean>
MemcachedCache.java
package org.cpframework.core.cache.memcached; import java.util.concurrent.TimeoutException; import org.springframework.cache.Cache; import org.springframework.cache.support.SimpleValueWrapper; import com.google.code.ssm.api.format.SerializationType; import com.google.code.ssm.providers.CacheException; public class MemcachedCache implements Cache{ private com.google.code.ssm.Cache cache; public com.google.code.ssm.Cache getCache() { return cache; } public void setCache(com.google.code.ssm.Cache cache) { this.cache = cache; } @Override public String getName() { // TODO Auto-generated method stub return this.cache.getName(); } @Override public Object getNativeCache() { // TODO Auto-generated method stub return this.cache; } @Override public ValueWrapper get(Object key) { // TODO Auto-generated method stub Object object = null; try { object = this.cache.get((String)key, SerializationType.JAVA); } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (CacheException e) { // TODO Auto-generated catch block e.printStackTrace(); } return (object != null ? new SimpleValueWrapper(object) : null); } @Override public void put(Object key, Object value) { // TODO Auto-generated method stub try { this.cache.set((String)key, 86400, value, SerializationType.JAVA); } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (CacheException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void evict(Object key) { // TODO Auto-generated method stub try { this.cache.delete((String)key); } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (CacheException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void clear() { // TODO Auto-generated method stub try { this.cache.flush(); } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (CacheException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关推荐
在SSM框架中引入Memcached并基于Spring的Cache注解进行整合,可以实现高效、分布式的数据缓存,提升系统性能。下面将详细阐述这一过程中的关键知识点。 1. **Memcached介绍**: Memcached是一款高性能、分布式的...
在本项目中,我们主要探讨的是如何将Spring Cache与memcached进行整合,以提升应用程序的性能和效率。Spring Cache是Spring框架的一部分,它提供了一种抽象的缓存管理机制,可以方便地集成到各种缓存解决方案中,如...
- Spring Cache抽象提供了基于注解的缓存支持,如`@Cacheable`、`@CacheEvict`、`@CachePut`和`@Caching`,它们分别用于缓存方法结果、清除缓存、更新缓存以及组合缓存操作。 - `@Cacheable`注解用于缓存方法的...
本文将深入探讨如何将Spring与Memcached整合,以及如何使用Spring Cache注解实现缓存功能。 首先,我们需要理解Spring Cache的基本概念。Spring Cache是一个抽象层,它允许我们在不依赖特定缓存实现的情况下使用...
SpringCache是基于注解驱动的,允许开发者通过在方法上添加`@Cacheable`、`@CacheEvict`等注解来启用缓存功能。`@Cacheable`用于缓存方法的返回结果,`@CacheEvict`则用于清除缓存。此外,`@Caching`注解可以用于...
Spring Memcached 是一个用于在Spring应用中集成Memcached缓存服务的框架。Memcached是一种分布式内存对象缓存系统,常用于提高网站数据读取的速度,因为它可以将数据存储在内存中,避免了频繁的数据库查询。现在...
Spring框架提供了对memcached的支持,主要通过`spring-cache`模块实现。首先,我们需要在项目的`pom.xml`文件中添加`spring-context-support`和`spymemcached`库的依赖。`spymemcached`是Java客户端库,用于连接和...
- 使用`@Cacheable`、`@CacheEvict`、`@CachePut`等Spring Cache注解可以方便地管理缓存操作。 - `@Cacheable`注解用于标记方法,表示其结果应该被缓存。如果缓存中存在对应键的结果,则直接返回,否则执行方法并...
<bean id="cacheManager" class="org.springframework.cache.memcached.MemcachedCacheManager"> <property name="memcachedClient" ref="memcachedClient" /> ``` 3. **启用缓存注解**:在Spring配置中开启...
5. **使用Memcached**:在业务代码中,你可以通过@Autowired注解注入MemcachedTemplate,并使用它进行数据的缓存操作。例如: ```java @Autowired private MemcachedTemplate, Object> memcachedTemplate; ...
- 在代码中,通过Spring的缓存注解,可以自动地将数据存入和取出Memcached。在实际应用中,可以通过设置不同的缓存策略,如基于方法的缓存、基于类的缓存等,以优化性能。 7. **性能优化**: - 缓存大小:根据...
- 启用了AspectJ代理机制,这对于使用simple-spring-memcached中的注解非常关键。 - 定义了一个名为`defaultMemcachedClient`的Bean,它是simple-spring-memcached中的核心组件之一,负责创建和管理Memcached客户端...
### Spring 3.1 对 Memcached 的集成与应用 #### 一、Spring 集成缓存概述 从 Spring 3.1 开始,Spring 框架正式引入了对缓存的支持,使得开发者能够更加方便地管理和使用缓存技术。这一特性极大地简化了缓存的...
**Memcached与Spring集成安装部署指南** Memcached是一款高性能、分布式的内存对象缓存系统,常用于减轻数据库负载,提高Web应用性能。Spring框架则是一个广泛使用的Java企业级应用开发框架,提供了丰富的功能和...
标题“memcached在SSH中的配置”指的是如何在SSH(Spring Security、Struts2和Hibernate)这个Java Web开发框架组合中集成和配置缓存系统memcached。memcached是一个高性能、分布式内存对象缓存系统,常用于加速动态...
4. **Spring与Memcached集成**:通过Spring Cache的Memcached模块,开发者可以在Spring应用中透明地使用Memcached服务。配置完成后,应用可以通过注解或编程方式将方法结果缓存到Memcached,减少对后端数据库的依赖...
《Simple-Spring-Memcached统一缓存的使用详解》 在Java应用中,尤其是在中大型项目中,有效地管理和使用缓存对于提升系统性能至关重要。Simple-Spring-Memcached(SSM)是一个流行的缓存框架,它整合了Spring框架...
JetCache 支持多种缓存实现,包括本地缓存(如 Guava Cache)和分布式缓存(如 Redis、Memcached),并且提供了丰富的配置选项,可以根据实际需求进行定制。 **核心特性** 1. **统一的 API 和注解**:JetCache ...
- Spring Boot 缓存,包括redis、ehcache、spring-cache、memcached、使用redis实现session共享 等。 - springboot-templates - Spring Boot 模板,包括thymeleaf、freemarker、jsp、表单校验 等。 - ...