package com.kingschan.blog.services.impl; import java.util.Date; import javax.annotation.Resource; import javax.mail.internet.MimeMessage; import net.sf.ehcache.Element; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.ehcache.EhCacheCacheManager; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import com.kingschan.blog.dao.HibernateBaseDao; import com.kingschan.blog.po.RequestLog; import com.kingschan.blog.services.CommonService; import com.kingschan.blog.util.TimeStampUtil; /** * 通用service实现 * @author kings.chan * */ @Service("CommonServiceImpl") public class CommonServiceImpl implements CommonService { @Autowired private EhCacheCacheManager em; @Qualifier("HibernateBaseDao") @Autowired private HibernateBaseDao baseDao; @Value("${app.debug}") protected boolean debug;//是否开发模式 /** * 部署域名 */ @Value("${app.host}") protected String host; public String getCdnhost() { return cdnhost; } /** * CDN文件加速域名 */ @Value("${app.cdn.host}") protected String cdnhost; /** * 文件上传处理临时目录 */ @Value("${app.file.temp.folder}") protected String fileTempFolder; public boolean isDebug() { return debug; } public String getHost() { return host; } public String getFileTempFolder() { return fileTempFolder; } /** * 返回cookie 共享顶级域名 * @return */ public String getShareCookHost(){ //如果是本地开发模式,配置的localhost那就不要加点,不然登录会有问题 if (host.contains("localhost")) { return host; } return String.format(".%s", host); } @Override public boolean cacheContrainKey(String cacheName, String key) throws Exception { Element et= em.getCacheManager().getCache(cacheName).get(key); return null==et.getObjectValue(); } @Override public void addCache(String cacheName, String key, Object value)throws Exception { Element et=new Element(key, value); em.getCacheManager().getCache(cacheName).put(et); } @Override public Object getCache(String cacheName, String key) throws Exception { Element et= em.getCacheManager().getCache(cacheName).get(key); return null==et||null==et.getObjectValue()?null:et.getObjectValue(); } @Override public void removeCache(String cacheName, String key) throws Exception { em.getCacheManager().getCache(cacheName).remove(key); } @Override public void addHttpRequestLog(String url, String method, String ip, String agent, String referer, int runmills,String blog) throws Exception { RequestLog log = new RequestLog(); log.setReqUrl(url); log.setReqMethod(method); log.setReqIp(ip); log.setReqAgent(agent); log.setReqReferer(referer); log.setReqRunTime(runmills); log.setReqDatetime(TimeStampUtil.getCurrentDate()); log.setReqBlog(blog); baseDao.save(log); } @Override public Object get(Class<?> clazz, Object id) throws Exception { return baseDao.get(clazz, id); } }