DUZHI_BLOG基于Jpress 进行更新而来的。在上面做了一系列升级,修复bug,等等。
在基础上增加了如下功能;
1、升级Jfial3.0、Jfial-weixi1.8
2、增加luceesearch全文搜索引擎
3、增加用户中心
4、增加用户中心等功能
5、优化微信渠道内容,避免无法搜索的场景,解决应用型问题
6、自带一套与官网一致的主题
组件Jfial这个就不说了,一个MVC框架。
Ehcache缓存框架,因为这个里面考虑的是本地的缓存所以,单机模式,所以在缓存的方案基本是懒加载以及缓存加载模式
public User getUser() { if (user != ull) retur user; if (getUserId() == ull) retur ull; user = UserQuery.me().fidById(getUserId()); retur user; }上面是个Cotet模型中获取用户的模式。再举个缓存的例子;
if (ActioCacheMaager.isCloseActioCache()) { ext.hadle(target, request, respose, isHadled); retur; } Actio actio = JFial.me().getActio(target, urlPara); if (actio == ull) { ext.hadle(target, request, respose, isHadled); retur; } ActioCache actioCache = actio.getMethod().getAotatio(ActioCache.class); if (actioCache == ull) { actioCache = actio.getCotrollerClass().getAotatio(ActioCache.class); if (actioCache == ull) { ext.hadle(target, request, respose, isHadled); retur; } } Strig origialTarget = (Strig) request.getAttribute("_origial_target"); Strig cacheKey = StrigUtils.isNotBlak(origialTarget) ? origialTarget : target; Strig queryStrig = request.getQueryStrig(); if (queryStrig != ull) { queryStrig = "?" + queryStrig; cacheKey += queryStrig; } ActioCacheMaager.eableCache(request); ActioCacheMaager.setCacheKey(request, cacheKey); ActioCacheMaager.setCacheCotetType(request, actioCache.cotetType()); Strig rederCotet = ActioCacheMaager.getCache(request, cacheKey); if (rederCotet != ull) { respose.setCotetType(actioCache.cotetType()); PritWriter writer = ull; try { writer = respose.getWriter(); writer.write(rederCotet); isHadled[0] = true; } catch (Exceptio e) { RederFactory.me().getErrorReder(500).setCotext(request, respose, actio.getViewPath()).reder(); } fially { if (writer != ull) { writer.close(); } } } else { ext.hadle(target, request, respose, isHadled); }上面是ActioCacheHadler.java的代码。
db.properties由于Jpress使用初始化模式,判断的就是db.properties有没有,所以如果没有数据库,已经表结构的情况下,建议使用懒汉模式一步一步安装即可。
rm db.properties
评论