- 浏览: 600190 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
首先我们来看一下如何使用spring3.1自己的cache,
需要在命名空间中增加cache的配置
然后加入申明处理
然后在Dao类中加入缓存方法 andCache是存储的地方 eventi是Key值用于寻找存储实例
调用getCache方法的时候它会去andCache这个地方寻找有没有以Key为主键的缓存,如果有则不调用方法,没有则调用该方法。
本人测试过程中发现转换错误:
解决方法是在AOP的配置中加入注入策略方式:
在aop:config标签中加入proxy-target-class="true"这句话就能解决。同时需要cglib.jar文件。
注意:proxy-target-class属性值决定是基于接口的还是基于类的代理被创建。如果proxy-target-class 属性值被设置为true,那么基于类的代理将起作用(这时需要cglib库)。如果proxy-target-class属值被设置为false或者这个属性被省略,那么标准的JDK基于接口的代理。
需要在命名空间中增加cache的配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:cache="http://www.springframework.org/schema/cache" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd">
然后加入申明处理
<!-- 启用缓存注解功能,这个是必须的,否则注解不会生效,另外,该注解一定要声明在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.springframework.cache.concurrent.ConcurrentCacheFactoryBean" p:name="default" /> <bean class="org.springframework.cache.concurrent.ConcurrentCacheFactoryBean" p:name="andCache" /> </set> </property> </bean>
然后在Dao类中加入缓存方法 andCache是存储的地方 eventi是Key值用于寻找存储实例
@Cacheable(value = "andCache", key = "#eventid") public XX getCache(String eventid) { System.out.println("进来了"); return this.get(eventid); }
调用getCache方法的时候它会去andCache这个地方寻找有没有以Key为主键的缓存,如果有则不调用方法,没有则调用该方法。
本人测试过程中发现转换错误:
org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy11 implementing XX,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [XX] for prop
解决方法是在AOP的配置中加入注入策略方式:
<tx:advice id="transactionInterceptor" transaction-manager="hibernateManager"> <tx:attributes> <tx:method name="find*" propagation="SUPPORTS" read-only="true" timeout="300" /> <tx:method name="query*" propagation="SUPPORTS" read-only="true" timeout="300" /> <tx:method name="is*" propagation="SUPPORTS" read-only="true" timeout="300" /> <tx:method name="batch*" propagation="REQUIRED" isolation="READ_COMMITTED" timeout="1800" rollback-for="Throwable" /> <tx:method name="audit*" propagation="REQUIRES_NEW" isolation="READ_COMMITTED" timeout="600" rollback-for="Throwable" /> <tx:method name="*" propagation="REQUIRED" isolation="READ_COMMITTED" timeout="300" rollback-for="Throwable" /> </tx:attributes> </tx:advice> <aop:config proxy-target-class="true"> <aop:advisor advice-ref="transactionInterceptor" pointcut="execution(* com.jasgroup..*.service.impl..*.*(..))" order="40" /> <aop:advisor advice-ref="transactionInterceptor" pointcut="execution(* cn.jasgroup..*.service.impl..*.*(..))" order="41" /> <aop:advisor advice-ref="transactionInterceptor" pointcut="execution(* cn.jasgroup..*.services.impl..*.*(..))" order="41" /> </aop:config>
在aop:config标签中加入proxy-target-class="true"这句话就能解决。同时需要cglib.jar文件。
注意:proxy-target-class属性值决定是基于接口的还是基于类的代理被创建。如果proxy-target-class 属性值被设置为true,那么基于类的代理将起作用(这时需要cglib库)。如果proxy-target-class属值被设置为false或者这个属性被省略,那么标准的JDK基于接口的代理。
发表评论
文章已被作者锁定,不允许评论。
-
Spring BeanFactoryPostProcessor和BeanPostProcessor的区别
2018-11-14 15:40 706链接:https://blog.csdn.net/caihai ... -
spring BeanPostProcessor理解
2018-11-14 11:31 321链接:https://blog.csdn.net/ginkgo ... -
Spring 源码解析之Initializer
2018-11-14 11:27 456链接:https://blog.csdn.net/ktlife ... -
spring transaction同一个类不回滚解决方法
2018-10-11 10:59 7711.修改配置文件 <aop:aspectj-autopr ... -
Spring @Transaction学习
2018-10-08 10:36 2921.考虑有下面这么一个类 public class Foo ... -
spring mvc i18n国际化学习(spring:message)
2018-06-09 09:35 641spring.xml文件中配置: <!-- 存储区域 ... -
Spring Boot Oauth2.0授权服务器
2018-05-11 14:19 1652什么是OAuth? OAuth(Open Authoriza ... -
Spring Boot @Import注解(将指定类实例注入到IOC容器中)
2018-05-09 10:20 1598SpringBoot 的 @Import 用于将指定的类实例注 ... -
Spring Boot @Conditional注解
2018-05-09 10:15 1817Spring Boot的强大之处在于使用了Spring 4框架 ... -
Spring Boot自定义starter pom实例(/META-INFO/spring.factory文件)
2018-05-09 09:48 1140自定义starter pom 自己实现一个简单的例子,当某个类 ... -
Spring Boot自动配置原理(@Conditional @Import)
2018-04-26 14:45 1339Springboot的自动配置是SpringBoot的关键,主 ... -
Spring Boot优缺点总结
2018-04-16 10:25 1537优点: 1.去除了大量的xml配置文件 2.简化 ... -
SpringBoot JPA @Transaction 知识学习
2018-03-16 09:09 762一、事务相关概念 1、事务的特点 原子性:事务是一个原子操 ... -
Sprint @Query注解的用法(nativeQuery=true/false)(Spring Data JPA)
2018-03-15 16:33 38451. 一个使用@Query注解的简单例子 @Query(val ... -
Spring Boot JpaRepository知识学习(Spring Data JPA)
2018-03-14 11:17 18011.Spring Data所解决的问题 Spring Dat ... -
SpringCloud Hystrix知识学习(防止雪崩效应)
2018-03-13 14:57 930一、Hystrix说明 1.服务雪崩效应:是一种因服务提供者的 ... -
SpringCloud @LoadBalanced注解学习
2018-03-13 09:48 2221当时我们说开启负载均衡很简单,只需要在RestTemplate ... -
Spring Boot配置方式(java配置和注解配置)
2018-03-12 15:09 1111Java配置 从Spring 3.x开始,Spring提供了J ... -
java RestTemplate访问restful服务
2018-03-01 15:02 1622REST的基础知识 当谈论REST时,有一种常见的错误就是将其 ... -
SpringCloud | 第七篇: 高可用的服务注册中心
2018-02-26 14:31 485文章 第一篇: 服务的注册与发现(Eureka) 介绍了服务注 ...
相关推荐
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> ``` 在ehcache.xml中,你可以定义具体的缓存设置,如大小、存活时间等。 3. **创建缓存注解**:在Spring ...
Spring Boot Cache 使用方法整合代码实例 Spring Boot Cache 是一个基于 Java 语言的缓存框架,它提供了一种简单且高效的缓存机制,可以帮助开发者快速实现缓存功能。在本文中,我们将详细介绍 Spring Boot Cache ...
例如,可以结合Spring Security提供身份验证和授权,使用缓存机制(如Spring Cache或Hibernate二级缓存)提高效率,编写单元测试和集成测试确保代码质量。 总的来说,Spring MVC+Spring 4+Hibernate 5的架构提供了...
8. **测试支持**:Spring提供了一个测试框架,支持单元测试和集成测试,方便编写模拟对象和声明式事务。 9. **Spring Boot**:虽然4.1.6版本的Spring不包含Spring Boot,但它是后来的一个重要分支,简化了Spring...
CacheManager是全局缓存管理器,负责创建和管理多个Cache实例。Cache实例存储键值对,Element封装了缓存的数据和元信息。 2.2 环境搭建 首先,需要在项目中引入EHCache的依赖,并配置相应的XML文件,定义缓存名称、...
这个war文件使用了Spring 1.2.8版本,这表明了该示例是基于早期的Spring版本编写的。 #### 二、Acegi Security中的用户缓存 在Acegi Security中,用户缓存(User Cache)是一种优化机制,它可以减少对数据库的访问...
JetCache中的注释支持本地TTL,两级缓存和分布式自动刷新,您也可以手动编写Cache实例。 当前有四个工具: RedisCache , TairCache (在github上不是开源的), CaffeineCache (在内存中),一个简单的...
### Struts2 + Spring2 + Hibernate3 整合实例源码分析 #### 一、概述 随着企业级应用的发展,为了提高开发效率和系统维护性,越来越多的项目开始采用MVC设计模式。其中,Struts2作为MVC框架中的佼佼者,在前端...
总结,这个"spring+ehcache demo"是一个全面的示例,涵盖了从引入Ehcache依赖、配置Spring Cache到编写缓存注解的方法。通过学习和实践这个示例,开发者可以深入了解Spring与Ehcache的集成,以及如何利用缓存提升...
5. **cache**: `cache`目录下的Schema文件是Spring对缓存支持的定义,如支持EhCache、Hibernate二级缓存等。它允许开发者轻松地将缓存机制集成到应用中,提高性能。 6. **lang**: `lang`模块提供了对动态语言的支持...
在Spring MVC框架中,URL重写是...记住,`urlrewrite.xml`文件的灵活性非常高,你可以根据实际需求编写复杂的规则,实现更精细化的URL控制。在实践中,不断调整和完善这些规则,可以让你的Web应用具有更好的用户体验。
"cache-demo"部分表示这是一个用于演示缓存功能的实例,而"2.5"则代表这是该功能的第2.5个版本,通常意味着它可能包含了前一版本的改进和新特性。 【描述】"cache-demo cache管理,阿里巴巴系统cache管理" 描述了这...
其中,`spring.cache.type`指定了缓存技术类型,`spring.cache.ehcache.config`指定了EhCache的配置文件路径。 3. **编写EhCache配置文件** 创建`ehcache.xml`文件,配置具体的缓存策略。例如: ```xml ...
- 例如,可以使用Spring Cache API来自动缓存Hibernate查询的结果,减少不必要的数据库交互。 综上所述,Spring与Hibernate的结合不仅可以大大简化开发流程,还能提高系统的稳定性和可维护性。通过合理配置和利用...
8.5 数据缓存Cache 309 8.5.1 Spring 缓存支持 309 8.5.2 Spring Boot 的支持 310 8.5.3 实战 312 8.5.4 切换缓存技术 319 8.6 非关系型数据库NoSQL 320 8.6.1 MongoDB 320 8.6.2 Redis 329 第9 章 Spring Boot 企业...
1. 预初始化:默认情况下,Spring的bean默认为懒加载(Lazy),只有在被请求时才会实例化。但若涉及循环依赖,Spring会提前初始化相关的bean,以解决循环引用。 2. 早周期引用:Spring通过早周期引用来解决部分循环...
在实际开发中,还需要根据项目需求进行调整,例如添加安全框架(Spring Security)、缓存支持(Spring Cache)等。总之,SSM整合提供了一套强大的基础架构,为Java开发者构建现代Web应用提供了便利。
Spring Security可以用来保护应用,@ControllerAdvice可以全局处理异常,MessageSource支持多语言,而Spring Cache可以帮助优化性能。 以上就是SpringMVC和SpringData集成的基本过程和主要知识点。通过熟练掌握这些...
2. MyBatis Cache:通过配置,可以实现MyBatis的缓存机制,提高数据访问速度。 3. Transaction管理:Spring Boot的事务管理能力与MyBatis无缝对接,提供全局事务控制。 五、实战应用 在实际项目中,Spring Boot与...
从 Spring 3.1 版本开始,Spring 框架正式引入了对 Cache 的支持,这种支持的方式和原理与 Spring 对事务管理的支持非常类似。通过这种方式,开发人员可以在不增加大量额外代码的情况下轻松地集成缓存技术,从而提高...