在jeecms v5中采用缓存管理回话的方式,这里采用最简单的ehcache实现回话的管理。
具体实现如下:
Ehcache的配置:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
<!--<diskStore path="java.io.tmpdir/jeecms/hibernate"/>-->
<defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120"
overflowToDisk="true" diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"
diskPersistent="false" diskExpiryThreadIntervalSeconds="120"/>
<cache name="com.jeecms.common.web.session.Session" maxElementsInMemory="500" eternal="false" timeToIdleSeconds="1200" overflowToDisk="true" diskPersistent="true"/>
<cache name="com.jeecms.cms.front.ContentCount" maxElementsInMemory="500" eternal="true" overflowToDisk="true" diskPersistent="false"/>
</ehcache>
Spring的配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
default-lazy-init="true">
<!--缓存-->
<bean id="cacheManager" class="com.jeecms.common.web.WebEhCacheManagerFacotryBean">
<property name="configLocation">
<value>/WEB-INF/config/ehcache-application.xml</value>
</property>
<property name="diskStoreLocation">
<value>/WEB-INF/cache/application</value>
</property>
</bean>
<!--SESSION缓存-->
<bean id="ehSessionCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager">
<ref local="cacheManager"/>
</property>
<property name="cacheName">
<value>com.jeecms.common.web.Session</value>
</property>
<qualifier value="session"/>
</bean>
<!--内容计数缓存-->
<bean id="ehContentCountCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager">
<ref local="cacheManager"/>
</property>
<property name="cacheName">
<value>com.jeecms.cms.front.ContentCount</value>
</property>
<qualifier value="contentCount"/>
</bean>
<!--站点流量缓存-->
<bean id="ehCmsSiteFlowCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager">
<ref local="cacheManager"/>
</property>
<property name="cacheName">
<value>com.jeecms.cms.front.CmsSiteFlow</value>
</property>
<qualifier value="cmsSiteFlow"/>
</bean>
</beans>
package com.jeecms.common.web;
import java.io.IOException;
import net.sf.ehcache.CacheException;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.ObjectExistsException;
import net.sf.ehcache.config.Configuration;
import net.sf.ehcache.config.ConfigurationFactory;
import net.sf.ehcache.config.DiskStoreConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.Resource;
/**
* 用于Web的EhCacheManagerFacotryBean。可以基于Web根目录指定diskStore地址。
*/
public class WebEhCacheManagerFacotryBean implements FactoryBean<CacheManager>,
InitializingBean, DisposableBean {
private final Logger log = LoggerFactory
.getLogger(WebEhCacheManagerFacotryBean.class);
private Resource configLocation;
private Resource diskStoreLocation;
private String cacheManagerName;
private CacheManager cacheManager;
/**
* Set the location of the EHCache config file. A typical value is
* "/WEB-INF/ehcache.xml".
* <p>
* Default is "ehcache.xml" in the root of the class path, or if not found,
* "ehcache-failsafe.xml" in the EHCache jar (default EHCache
* initialization).
*
* @see net.sf.ehcache.CacheManager#create(java.io.InputStream)
* @see net.sf.ehcache.CacheManager#CacheManager(java.io.InputStream)
*/
public void setConfigLocation(Resource configLocation) {
this.configLocation = configLocation;
}
/**
* 设置ehcahce的diskStore path,例如:/WEB-INF/cache
*
* 如设置了此项,则在ehcache配置文件中不要配置<diskStore path=""/>,否则本设置无效。
*
* @param diskStoreLocation
*/
public void setdiskStoreLocation(Resource diskStoreLocation) {
this.diskStoreLocation = diskStoreLocation;
}
/**
* Set the name of the EHCache CacheManager (if a specific name is desired).
*
* @see net.sf.ehcache.CacheManager#setName(String)
*/
public void setCacheManagerName(String cacheManagerName) {
this.cacheManagerName = cacheManagerName;
}
public void afterPropertiesSet() throws IOException, CacheException {
log.info("Initializing EHCache CacheManager");
Configuration config = null;
if (this.configLocation != null) {
config = ConfigurationFactory
.parseConfiguration(this.configLocation.getInputStream());
if (this.diskStoreLocation != null) {
DiskStoreConfiguration dc = new DiskStoreConfiguration();
dc.setPath(this.diskStoreLocation.getFile().getAbsolutePath());
try {
config.addDiskStore(dc);
} catch (ObjectExistsException e) {
log.warn("if you want to config distStore in spring,"
+ " please remove diskStore in config file!", e);
}
}
}
if (config != null) {
this.cacheManager = new CacheManager(config);
} else {
this.cacheManager = new CacheManager();
}
if (this.cacheManagerName != null) {
this.cacheManager.setName(this.cacheManagerName);
}
}
public CacheManager getObject() {
return this.cacheManager;
}
public Class<? extends CacheManager> getObjectType() {
return (this.cacheManager != null ? this.cacheManager.getClass()
: CacheManager.class);
}
public boolean isSingleton() {
return true;
}
public void destroy() {
log.info("Shutting down EHCache CacheManager");
this.cacheManager.shutdown();
}
}
<!--EndFragment-->
相关推荐
JEECMS内容管理系统是国内java开源CMS行业知名度最高、用户量最大的站群管理系统。 · SpringMVC3+Spring3+Hibernate3+Freemarker技术架构 · 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的...
2. **Spring框架**:作为Java企业级应用的常用框架,Spring可能用于依赖注入、AOP(面向切面编程)、事务管理等,使得Jeecms具有更好的可扩展性和模块化。 3. **MyBatis**:Jeecms可能使用MyBatis作为持久层框架,...
在源码方面,Jeecms 2012工程源码是基于Java开发的内容管理系统,它集成了许多流行的开源组件和技术,例如Spring、Hibernate、Struts等。通过查看源码,开发者可以深入理解Jeecms的内部工作原理,学习其架构设计,...
JEECMS2.0 版本源码阅读笔记 JEECMS 作为一个基于 Java 的内容管理系统,具有强大的功能和灵活的...JEECMS 2.0 版本的源码阅读可以帮助开发者更好地了解 JEECMS 的内部机制和设计理念,从而更好地使用和扩展 JEECMS。
10. **性能优化**:JeecmsV5支持缓存机制,通过EhCache或Redis等缓存技术,可以显著提高网站的响应速度。 总的来说,JeecmsV5结合Eclipse提供了一个高效的企业级内容管理开发环境。开发者可以利用Eclipse的强大功能...
**JEECMS 内容管理系统** 是一个基于Java技术栈构建的企业级内容管理解决方案,它采用了经典的SSH(Struts2、Hibernate3、Spring2)框架进行开发。这个系统旨在为各种企业和组织提供灵活、高效的内容发布、管理和...
作为Java企业级应用的重要支撑,Spring框架在Jeecms中承担了依赖注入(DI)和面向切面编程(AOP)的角色。DI使得对象间的依赖关系在运行时动态配置,增强了系统的灵活性;AOP则用于实现日志记录、事务管理等横切...
同时,如果需要对原有数据进行迁移或整合,了解Jeecms的数据迁移工具和策略至关重要。 安全方面,Jeecms内置了一些安全机制,如防止SQL注入、XSS攻击等。然而,二次开发时,开发者需要确保新增功能不会引入新的安全...
5. **配置(Configuration)**:Jeecms的配置文件(如`spring-context.xml`和`servlet-context.xml`)定义了Spring容器如何初始化和装配组件,以及SpringMVC的配置,如拦截器、视图解析器等。 6. **模块(Module)*...
针对性能优化,JEECMS可能使用了如 EhCache 或 Hibernate Second Level Cache 这样的缓存技术,以减少数据库交互,提升系统响应速度。 8. **国际化与多语言支持** 作为一个全球化系统,JEECMS可能会提供多语言...
Jeecms是一款基于Java技术开发的内容管理系统,专为企事业单位及个人提供快速、高效、稳定的网站建设和管理平台。源码包通常包含整个系统的全部代码,是开发者深入理解系统架构、功能实现以及进行二次开发的基础。...
9. 安全框架:考虑到网站的安全性,Jeecms可能会集成Shiro或Spring Security框架,提供身份验证、授权和会话管理功能。 10. MVC设计模式:Jeecms遵循Model-View-Controller(MVC)设计模式,将业务逻辑、视图展示和...
5. **JEECMS网上文档集合**:JeeCMS网上文档集合.pdf整合了网络上的各种JEECMS教程和文档,提供了全面的学习资源。 6. **FreeMarker手册**:FreeMarker_Manual_zh_CN.pdf是FreeMarker的中文版官方手册,详细介绍了...
2. **框架集成**:Jeecms可能集成了Spring Framework,用于处理依赖注入和事务管理;Hibernate或MyBatis作为ORM(对象关系映射)工具,帮助开发者便捷地操作数据库;Struts或Spring MVC作为控制器层,处理HTTP请求。...
jeecms v6 复制和移动栏目报错修改,直接覆盖这个页面就可以了
JEECMSv8.1是一款支持微信小程序、栏目模型、内容模型交叉自定义、以及具备支付和财务结算的内容电商为一体内容管理系统:通过后台的简单设置即可自定义出集新闻管理、图库管理、视频管理、下载系统、文库管理、政务...
Jeecms是一个高度可定制的、基于Java技术的内容管理系统(CMS),以其强大的功能和灵活性受到开发者的青睐。9.2-adminVue版本是对该系统的一次重大更新,相较于之前的版本,它在功能和用户体验上都有显著提升。在...
JEECMS一直秉承用户体验、系统性能和实际应用为第一的研发思路,让jeecms的功能不断丰富的同时,更让jeecms适合更多的应用人群。 根据用户反馈新增和完善的功能还有很多,诸如:支持百度编辑器ueditor、用户模型...
Jeecms是一款基于Java技术开发的内容管理系统,专为企业的信息化建设和网站运营提供了强大的支持。它的源码包"jeecms5.1-src.zip"包含了整个系统的所有源代码,是学习和二次开发的理想资源。Jeecms的核心设计理念...