⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 websitemngimpl.java

📁 JEECSM是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 基于java技术开发
💻 JAVA
字号:
package com.jeecms.core.manager.impl;

import java.util.List;

import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;

import org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException;

import com.jeecms.core.JeeCoreManagerImpl;
import com.jeecms.core.dao.WebsiteDao;
import com.jeecms.core.entity.Website;
import com.jeecms.core.manager.WebsiteMng;
import com.ponyjava.common.hibernate3.OrderBy;
import com.ponyjava.common.web.PaginationSupport;

/**
 * 站点管理实现。
 * <p>
 * 系统启动时,加载所有站点信息。使用hibernate二级缓存,应用缓存保存域名domain到id的关系。
 * </p>
 * <ul>
 * <li> 修改website是检查是否修改域名,否则清空缓存。 </li>
 * <li>添加站点时,保存缓存</li>
 * </ul>
 * 
 * @author liufang
 * 
 */
public class WebsiteMngImpl extends JeeCoreManagerImpl<Website> implements
		WebsiteMng {
	@Override
	@SuppressWarnings("unchecked")
	public List<Website> getAllWebsite() {
		return findAll();
	}

	@Override
	public PaginationSupport getAllWebsite(int page, int countPerPage,
			boolean order) {
		return findAll(page, countPerPage, new OrderBy[] { OrderBy.desc("id") });
	}

	@Override
	public boolean removeWebsite(Long id) {
		Website website = getWebsiteDao().load(id);
		getWebsiteDao().delete(website);
		websiteDomainCache.remove(website.getDomain());
		return true;
	}

	@Override
	public Website getWebsite(Long id) {
		Website w = null;
		try {
			w = getWebsiteDao().load(id);
		} catch (HibernateObjectRetrievalFailureException e) {
			log.warn("get website from cache, id not exist:" + id);
			w = null;
		}
		return w;
	}

	@Override
	public Website getWebsite(String domainName) {
		Element e = websiteDomainCache.get(domainName);
		if (e != null) {
			Object websiteId = e.getObjectValue();
			return getWebsite((Long) websiteId);
		} else {
			log.warn("get website from cache, domain not exist:" + domainName);
			return null;
		}
	}

	@Override
	public List<Website> getListByUserUnited(Long unitedId) {
		return getWebsiteDao().getListByUserUnited(unitedId);
	}

	@Override
	public void loadAllWebsiteToCache() {
		websiteDomainCache.removeAll();
		List<Website> ws = getWebsiteDao().findAll();
		for (Website w : ws) {
			websiteDomainCache.put(new Element(w.getDomain(), w.getId()));
		}
	}

	@Override
	public void saveWebsite(Website w) {
		w.setSuffix(Website.DEF_SUFFIX);
		getWebsiteDao().save(w);
		websiteDomainCache.put(new Element(w.getDomain(), w.getId()));
		getWebsiteDao().refresh(w);
	}

	@Override
	public boolean updateWebsite(Website website) {
		Website before = getWebsite(website.getId());
		String beforeDomain = before.getDomain();
		Website after = (Website) getWebsiteDao().updateDefault(website);
		if (!after.getDomain().equals(beforeDomain)) {
			websiteDomainCache.remove(beforeDomain);
			websiteDomainCache
					.put(new Element(after.getDomain(), after.getId()));
		}
		return true;
	}

	private Cache websiteDomainCache;

	public void setWebsiteDao(WebsiteDao dao) {
		super.setDao(dao);
	}

	public WebsiteDao getWebsiteDao() {
		return (WebsiteDao) super.getDao();
	}

	public Cache getWebsiteDomainCache() {
		return websiteDomainCache;
	}

	public void setWebsiteDomainCache(Cache websiteDomainCache) {
		this.websiteDomainCache = websiteDomainCache;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -