<!-- Ehcache拦截,使用代理来实现 -->
<bean id="beanPostProcessor" class="org.frame.base.annotation.support.EhCacheBeanPostProcessor" >
<property name="beans">
<set>
<value>testI</value>
<value>intabc</value>
</set>
</property>
</bean>
package org.frame.base.annotation.support;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import java.util.Set;
import org.frame.base.annotation.intercept.ProxyHandler;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
/**
* 使用Ehcache代理来实现缓存拦截
*
*/
public class EhCacheBeanPostProcessor implements BeanPostProcessor{
private Set<String> beans;
public void setBeans(Set<String> beans) {
this.beans = beans;
}
@Override
public Object postProcessAfterInitialization(Object target, String beanName)
throws BeansException {
return target;
}
/**
* will be process the beans define in properties
* if you don't want to define
* you can define the pach model *DAO
* you can define the pach model *Service
* you can define the pach model *Action
* but i sugguest you define
*/
@Override
public Object postProcessBeforeInitialization(Object target, String beanName)
throws BeansException {
if(beans.contains(beanName)){
Class<?>[] interfaceClass = target.getClass().getInterfaces();
InvocationHandler handler = new ProxyHandler(target);
Object proxyObj = Proxy.newProxyInstance(target.getClass().getClassLoader(),
interfaceClass, handler);
return proxyObj;
}else{
return target;
}
}
}
指定代理的类,这样去除缓存很简单,代码不需要更改,只需要从拦截的beans设置里面去掉该beanName,缓存就没了,添加只需要添加该bean定义。
分享到:
相关推荐
在Spring的配置文件中,启用缓存注解支持,并指定使用的缓存管理器。例如,使用`<cache:annotation-driven>`标签: ```xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cache=...
使用`<cache:annotation-driven/>`元素开启基于注解的缓存控制,并通过`<bean>`标签配置EhCache的`CacheManager`。 4. **实体类和DAO层的缓存配置**:在Hibernate的实体类上,可以使用`@Cacheable`、`@CacheEvict`...
Spring3注解与Ehcache整合是现代Java应用中实现高效缓存管理的重要技术组合。在Spring框架中,注解提供了简洁的编程模型,而Ehcache则是一个广泛使用的开源缓存解决方案,它能有效提高应用程序性能,减少数据库访问...
本文将深入探讨如何结合Spring AOP与EhCache实现一个简单的缓存实例,以便优化Java应用的运行效率。 首先,让我们了解Spring AOP。Spring AOP是Spring框架的一部分,它允许我们在不修改业务代码的情况下,通过定义...
4. 在实体类和Service层注解:使用`@Cacheable`、`@CacheEvict`等注解,指定哪些方法的返回结果应被缓存,以及何时清除缓存。例如: ```java @Service public class UserService { @Cacheable(value = "myCache", ...
- **2.4.7 缓存**:`@Cache` 注解用于配置实体Bean的缓存策略。 - **2.4.8 过滤器**:`@Filter` 注解用于实现对查询结果的动态过滤。 - **2.4.9 查询**:`@NamedQuery` 注解用于定义命名查询。 #### 四、通过 XML ...
在本项目中,这些框架的集成使用了注解(Annotation)来简化配置,使得代码更加简洁和易于维护。 Struts1.3 是一个基于 Model-View-Controller (MVC) 模式的开源框架,用于构建动态 Web 应用。它提供了一种结构化的...
首先,需要在Hibernate的配置文件中启用二级缓存并指定Ehcache为提供者,然后在实体类或映射文件中启用缓存。 ```xml <!-- hibernate.cfg.xml --> <property name="hibernate.cache.use_second_level_cache">true ...
Ehcache是一个流行的Java缓存库,常用于提高应用程序的性能和效率,通过存储经常访问的数据来减少数据库的负载。...同时,通过Spring的缓存抽象,可以方便地切换不同缓存实现,保持代码的可维护性和可扩展性。
以下将详细介绍"spring_hibernate_annotation的三种实现"。 1. **基于XML的配置** 在早期的Spring和Hibernate集成中,通常使用XML配置文件来定义Bean和数据源,以及映射信息。Spring的`applicationContext.xml`...
在本项目中,我们采用“基于annotation的S2SH(Struts2、Spring、Hibernate)实现零配置的教务管理系统改进版”,这表明了系统设计的核心在于利用Java框架的注解能力来减少传统XML配置文件的使用,从而提高开发效率...
1. 隐式映射:在上面的例子中,我们没有显式指定每个属性的映射,这是因为Hibernate Annotation采用了一种“配置例外”(configuration by exception)的理念。除主键和实体标识外,其他属性默认按照Java Bean的规则...
- **约束注解(Constraint Annotation)**:Bean Validation 提供了一系列内置的约束注解,如`@NotNull`、`@Min`、`@Max`等,用于标记在实体类上的字段,定义验证规则。 - **验证器(Validator)**:验证器负责执行...
创建一个配置类,设置RedisTemplate并指定KeyGenerator和CacheManager: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import ...
总结起来,Spring的类级别缓存提供了一种方便的方式来管理和使用缓存,通过注解驱动和EhCache这样的缓存提供商,我们可以轻松地在服务层实现缓存功能,减少不必要的计算和数据库查询,提高系统响应速度。理解并熟练...
最后,通过`<cache:annotation-driven>`启用基于注解的缓存处理,指定使用哪个缓存管理器。 ```xml <bean id="ehcacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> </...
在IT行业中,构建一个高效的Web应用常常涉及到各种技术的整合,比如Spring MVC作为控制器层的框架,Redis作为高性能的键值存储系统用于缓存。本文将详细讲解如何使用Maven来简单搭建一个集成了Spring MVC和Redis缓存...
- **EJB3注解**:实体Bean是ORM的核心,EJB3注解提供了在Java类上直接声明数据库映射的方法。 - **表定义**:使用`@Table`注解指定对应的数据库表。 - **乐观锁定**:通过`@Version`注解实现乐观锁,防止并发更新...
### Hibernate Annotation 帮助文档知识点总结 #### 1. 创建注解项目 - **系统需求**:在开始创建一个支持 Hibernate 注解的项目之前,需要确保满足以下系统需求: - Java 开发环境(例如 JDK 1.8 或更高版本)。...
在Spring配置文件中,我们需要使用<cache:annotation-driven>元素来启用缓存机制,并使用元素来指定缓存管理器。在本文中,我们使用EhCache作为缓存提供者,因此我们需要使用<bean>元素来配置EhCache的CacheManager...