`
tangpengtao
  • 浏览: 1120 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

spring 2.5 annotations配置ehcache

阅读更多
配置ehcache地址:
http://code.google.com/p/ehcache-spring-annotations/wiki/UsingTriggersRemove
hi :
大家好,我目前使用的是spring ehcache作为项目的缓存.详细配置如下:
ehcaceh_config.xml
<?xml version="1.0" encoding="utf-8"?>
<beans default-autowire="byName"
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:ehcache="http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
       http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring
       http://ehcache-spring-annotations.googlecode.com/svn/schema/ehcache-spring/ehcache-spring-1.1.xsd">

<ehcache:annotation-driven cache-manager="ehCacheManager" />

<bean id="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="/WEB-INF/classes/ehcache.xml"></property>
</bean>
</beans>

ehcache.xml

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false">
<diskStore path="java.io.tmpdir/EhCacheSpringAnnotationsExampleApp"/>
    <defaultCache
            maxElementsInMemory="100"
            eternal="false"
            timeToIdleSeconds="3000"
            timeToLiveSeconds="3000"
            overflowToDisk="true"
            diskSpoolBufferSizeMB="30"
            maxElementsOnDisk="100"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="100"
            memoryStoreEvictionPolicy="LRU"
            statistics="false"
            />
    <cache name="UserCache"
           maxElementsInMemory="100"
           maxElementsOnDisk="100"
           eternal="false"
           overflowToDisk="true"
           diskSpoolBufferSizeMB="20"
           timeToIdleSeconds="100"
           timeToLiveSeconds="100"
           memoryStoreEvictionPolicy="LFU"
           transactionalMode="off"
            />
</ehcache>
@Cacheable(cacheName="userCache")
public ConcurrentMap<Integer, UserModel> getAllUserInfoMap() {
List<UserModel> list = (List<UserModel>) getSqlMapClientTemplate()
.queryForList("user.SELECT_USER_ALL_INFO");
ConcurrentMap<String, UserModel> userMap = null;
if (CollectionUtils.isNotEmpty(list)) {
userMap = new ConcurrentHashMap<String, UserModel>();
for (UserModel userModel : list) {
userMap.put(userModel.getId(), userModel);
}
}
return userMap;
}
@TriggersRemove(cacheName="userCache",removeAll=true)
public void insertUser(UserModel userModel){
getSqlMapClientTemplate().insert("user.INSERT_USER_POJO",  userModel);
}
代码都贴出来了,ehcache的内部机制我不太了解。希望大家指点一下。
现在是这样的场景,先在action 中调用getAllUserInfoMap 方法,ehcache会把所有的数据都放到cache中。
然后在action中调用insertUser方法。如果在insert 方法中不使用@TriggersRemove(cacheName="userCache",removeAll=true)
ehcache不会把新增的数据同步到cache中。但是如果这里把cache remove了以后。下次调用getAllUserInfoMap 方法时候就会重新查询一下数据库。这样就跟我们前期想要的效果不符。实际缓存的意义就不大了。
或许我没把ehcache的原理吃透。所以请大家指点一下。因为项目没有集群所以不考虑用memcached。大家有好的cache方案可以尽情提出来。谢谢大家。

分享到:
评论

相关推荐

    配置整合DWR3.0和Spring2.5使用annotation注解

    这里的`DwrSpringServlet`是DWR与Spring集成的Servlet,它会自动扫描Spring配置,寻找带有`@RemoteProxy`注解的类。`debug`参数控制DWR的调试模式,`crossDomainSessionSecurity`参数用于跨域安全性设置。 为了使...

    spring 2.5

    在Spring 2.5中,最重要的改进之一是对Java 5的全面支持,包括注解(Annotations)和泛型(Generics)。这一变化使得开发者能够更方便地使用依赖注入,通过在类或方法上直接使用注解来声明依赖,而不是依赖XML配置。...

    spring2.5.2开发参考手册pdf,spring2.5.ppt,Spring2.5-中文参考手册.chm

    它可能会重点介绍新特性,如XML配置的简化(如@Annotations)、Bean定义的增强(如Prototype scope和Lazy initialization)、表达式语言(Spring Expression Language, SpEL)以及对JSR-303 Bean Validation的支持。...

    Spring2.5架构图

    3. **Java配置**:除了传统的 XML 配置外,Spring 2.5 开始支持 Java 类进行配置(`@Configuration` 和 `@Bean` 注解),这种方式更符合 Java 开发者的习惯,也更易于理解和维护。 4. **AOP增强**:Spring 2.5 在 ...

    struts2.0 spring2.5 hibernate3.2组合的jar包集合

    总之,Struts2.0、Spring2.5和Hibernate3.2的组合为Java Web开发提供了一个强大、灵活的解决方案,通过合理的配置和使用,可以构建出高效且易于维护的企业级应用。这个压缩包集合就是为了解决集成中的常见问题,帮助...

    ehcache-spring-annotations-1.2.0

    它大大简化了在Spring应用中基于业界使用广泛的Ehacche-2.0版本实现缓存的技术,1.1.2版本的ehcache-spring-annotations刚刚发布不久,在本文中,我将会介绍如何在一个web工程时使用ehcache-spring-annotations实现...

    ehcache-spring-annotations-1.2.0.jar

    ehcache-spring-annotations-1.2.0.jar

    spring2.5 jar包

    它允许通过注解(Annotations)进行依赖配置,例如`@Autowired`、`@Qualifier`和`@Resource`,减少了XML配置文件的使用,提高了代码的可读性和可维护性。 2. **注解支持增强**:Spring 2.5 引入了对Java 5和6注解的...

    hibernate3[1].2+spring2.5+struts2.1配置过程

    本文将详细介绍如何在Windows XP环境下,使用MyEclipse 7.0和Tomcat 6.0容器,配置一个基于Hibernate 3.2、Spring 2.5和Struts2.1的项目。 首先,创建一个新的Web工程,命名为"ssh",选择Java EE 5.0规范。接着,...

    ehcache-spring-annotations-1.1.2.jar

    ehcache-spring-annotations-1.1.2.jar

    hibernate3.2+spring2.5+struts2.1配置过程.doc

    在本文中,我们将详细探讨如何配置一个基于Java的Web应用程序,使用Hibernate3.2作为持久层框架,Spring2.5作为应用上下文管理和依赖注入工具,以及Struts2.1作为MVC框架。这个组合通常被称为SSH(Struts2、Spring、...

    Spring-Reference_zh_CN.rar_spring_spring 2.5_spring framework_sp

    《Spring Framework 2.5 开发参考手册》是Spring框架的重要文档,主要涵盖了Spring 2.5版本的核心特性和使用方法。Spring是一个开源的应用程序框架,它为Java平台提供了全面的基础设施支持,使得开发者能够更方便地...

    spring2.5源码包

    Spring 2.5 引入了对 JSR-250(Common Annotations for the Java Platform)的支持,使得在类和方法上使用注解来声明切面变得更为方便。`org.springframework.aop` 包中的类和接口展示了 AOP 的实现,包括切面...

    struts2.0 spring2.5 hibernate3.0

    然后在Spring2.5的配置文件(如applicationContext.xml)中,声明并注入需要的bean,包括Action类、Service类和DAO类。最后,通过配置Hibernate的sessionFactory和transactionManager,使Spring管理Hibernate的生命...

    spring-property-annotations:Spring 2.5.x 组件的带注释的配置属性

    #Spring 属性注释扩展的 PropertyPlaceHolderConfigurer 使用注解将配置属性注入到 Spring 组件中。 注意:Spring 3 现在支持使用 @Value 注释的容器的。 该项目仅用于 Spring 2.5.x 支持。 ##入门Spring房产注解...

    spring2.5jar包.zip

    9. **common-annotations.jar**:包含JSR-250规范定义的标准注解,如@PostConstruct和@PreDestroy,这些注解在Spring中用于标记初始化和销毁方法,使得Spring容器能够自动调用。 综上所述,Spring 2.5的Jar包集合...

    spring 2.5 docs

    1. **依赖注入(Dependency Injection, DI)**:Spring 2.5对依赖注入进行了进一步优化,使得在配置文件中更加灵活地管理对象间的依赖关系。支持基于注解的依赖注入,开发者可以在类的字段或方法上使用`@Autowired`、`...

    Struts2.1.6+Spring2.5+Hibernate3.3的框架配置详解

    **Spring2.5配置** 1. **引入Spring库**:Spring的核心库包括spring-context、spring-beans、spring-aop、spring-web和spring-webmvc等。这些JAR包同样放入`WEB-INF/lib`目录。 2. **配置Spring**:在`WEB-INF`目录...

    struts1.2+hibernate3.5+spring2.5框架搭建

    Struts1.2、Hibernate3.5和Spring2.5是经典的Java企业级开发框架组合,被称为SSH(Struts-Spring-Hibernate)架构。这个框架集合提供了强大的模型-视图-控制器(MVC)设计模式支持,数据持久化以及依赖注入等功能,...

Global site tag (gtag.js) - Google Analytics