`
pengjj2
  • 浏览: 139322 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

spring-cache的使用

 
阅读更多

spring-cache并不是一个缓存框架的具体实现,仅仅是一个缓存框架的抽象,同时又默认对接了几种第三方的缓存实现。如java本身的ConcurrentMap、ehcache、guava cache等。

下面是一个spring-cache的简单实现。

因为spring-cache默认是基于AOP的方式去进行缓存处理的,所以几个缓存的注解@Cacheable@CacheEvict@CachePut必须放在实现类上,并且该类被spring代理了,而且只能在被外部调用时才有效,如果对象内部调用,默认设置下该缓存是无效的。如果需要对象内部调用,spring提供了参数配置。

现在来简单配置一个spring-cache。

1、首先maven的依赖

springcache在spring-context中,所以不需要额外的jia包了。

2、建立一个可以被spring加载的xml文件,文件内容如下

springcache简单配置 写道
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cache="http://www.springframework.org/schema/cache"


xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd"
>
<description>spring cache配置</description>
<!-- 如果没有其他配置文件扫描缓存所在的包,请添加该扫描 -->
<!-- <context:component-scan base-package="com.scm.base.cache" /> -->

<!-- 基于注解的驱动,默认使用基于接口的动态代理,如果要基于类则修改proxy-target-class="true",这样缓存就支持对象内部的调用 -->
<cache:annotation-driven/>
<!-- 定义cache管理,简单使用java的concurrentMap来作为简单缓存的实现,请注意缓存中使用的缓存名字必须和这里配置的名字匹配 -->
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
<property name="caches">
<set>
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" >
<property name="name" value="default"></property>
</bean>
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean">
<property name="name" value="allDic"></property>
</bean>
</set>
</property>
</bean>
</beans>

 3、java类中的使用

/**
 * 系统字典服务类
 */
@Service(value="sysDictionaryService")
public class SysDictionarySerivceImpl implements SysDictionarySerivce {
	
	private final static Logger logger = LoggerFactory.getLogger(SysDictionarySerivceImpl.class);
	
	@Resource
	private SysDictionaryDao sysDictionaryDao;
	
	@Override
	@Cacheable(value="allDic")
	public Map<String, List<SysDictionaryItem>> getAllDictionaries() {
		logger.info(" 开始调用缓存字典 ");
		Map<String, List<SysDictionaryItem>> resultMap = new LinkedHashMap<String, List<SysDictionaryItem>>();
		return resultMap;
	}
}

 4、如果从外部调用该方法,第一次会打印"开始调用缓存字典",第二次则会直接返回结果,不进入方法。

 5、如果需要对所有的注解和其他更复杂的使用,可以参考spring官方文档中关于cache部分。

 6、本例子是基于spring4.0.6如果其他版本有些写法可能不一样。

 

分享到:
评论

相关推荐

    spring-cache.xsd+spring-encache.xsd

    标题中的"spring-cache.xsd+spring-encache.xsd"提到了两个XML Schema定义文件,它们是Spring框架中用于缓存管理的配置规范。Spring框架是一个广泛应用的Java企业级应用开发框架,它提供了多种功能,包括但不限于...

    jar包-spring-modules-cache.jar

    总之,`spring-modules-cache.jar`中的Spring Modules Cache是Spring框架的一个强大补充,它简化了缓存的管理和使用,帮助开发者构建高性能、易维护的Java应用。无论是在单体应用还是微服务架构中,这个库都能发挥...

    spring-modules-cache

    spring-modules-cache-0.8.jar

    spring-modules-cache.jar下载

    spring-modules-cache.jar spring-modules-cache.jar

    spring-cache-4.1.xsd

    spring-cache-4.1.xsd用于spring开发代码提示。用于Java开发。

    spring-boot-cache.rar

    在这个名为 "spring-boot-cache.rar" 的压缩包中,我们很可能是找到了一个基于 Spring Boot 的小型项目,它展示了如何在 Spring Boot 应用中集成和使用缓存功能。下面我们将详细探讨 Spring Boot 缓存的相关知识点。...

    spring-cache-4.2.xsd.zip

    "spring-cache-4.2.xsd"是XML Schema定义文件,用于验证和解析使用Spring Cache的XML配置文件。XML Schema定义了合法的元素、属性和它们之间的关系,确保配置文件符合规范。在Spring中,XML配置文件通常位于`...

    spring-cache-demo-Ruby资源

    spring-cache-demo-Ruby资源

    autoload-cache-spring-boot-starter:自动加载缓存spring boot starter

    7. **使用方法**: 使用`autoload-cache-spring-boot-starter`通常涉及以下步骤: - 在`pom.xml`或`build.gradle`中添加依赖。 - 配置Spring Boot的application.properties或application.yml,设定缓存的相关参数。...

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

    Spring Cache是一个抽象层,它允许开发者在不关注具体缓存实现的情况下,轻松地在应用程序中添加缓存功能。本篇文章将详细探讨如何通过key值更新Spring Cache中的指定缓存,以及相关的缓存管理策略。 首先,让我们...

    spring-boot-2.1.3.RELEASE.jar.rar

    spring-boot-2.1.3.RELEASE.jar -autoconfigure- -devtools- -maven-plugin- -starter- -starter-jdbc- -starter-json- -starter-logging- -starter-test- -starter-tomcat- -starter-web- -test- -test-...

    spring-boot-starter-cache-2.2.4.RELEASE.jar

    java运行依赖jar包

    springboot 使用spring cache缓存 和 使用fastjson配置redis系列化

    在本篇文档中,我们将探讨如何使用Spring Cache来缓存数据,并结合Fastjson配置Redis序列化,确保数据正确存储和读取。 首先,我们需要在`pom.xml`中添加必要的依赖。Spring Boot的`spring-boot-starter-cache`模块...

    spring-cache

    spring-cache-3.5.0工具包,Java开发一般能用上,缓存工具

    spring-context-support-4.2.2.RELEASE.jar 的jar包

    4. **缓存支持**: 除了上述功能,`spring-context-support`还包含了对缓存管理的支持,如EhCache、Guava Cache等。这使得开发者可以方便地在Spring应用中实现缓存策略,提高应用程序的性能。 5. **其他集成**: 此外...

    Spring Boot 整合 Spring-cache:让你的⽹站速度飞起来.docx

    Spring Boot 整合 Spring-cache:让你的⽹站速度飞起来

    spring-cache-4.2

    配置applicationContext.xml的xsd文件里面.........................................................................

    Spring Boot 整合 Spring-cache:让你的网站速度飞起来.docx

    【Spring Boot 整合 Spring-cache:让你的网站速度飞起来】 Spring Boot 整合 Spring-cache 是一种优化应用程序性能的有效手段,通过引入缓存机制,可以显著提升网站的响应速度,减少对数据库的依赖,提高用户体验...

    spring-boot-mybatis-cache-thymeleaf学习练习demo源码

    在本项目"spring-boot-mybatis-cache-thymeleaf学习练习demo源码"中,我们可以深入学习和实践如何将Spring Boot、MyBatis、Cache(通常指的是Spring Cache)以及Thymeleaf这四个关键组件整合在一起,创建一个高效、...

Global site tag (gtag.js) - Google Analytics