- 授权协议: LGPL
- 开发语言: Java
- 操作系统: 跨平台
- 软件首页: http://www.duzhi.me
- 软件文档: http://www.duzhi.me/article/1105.html
软件介绍
DUZHI_BLOG基于 Jpress 进行更新而来的。在上面做了一系列升级,修复bug,等等。
在基础上增加了如下功能;
1、升级 Jfinal 3.0 、Jfinal-weixin 1.8
2、增加 lucene search 全文搜索引擎
3、增加用户中心
4、增加 用户中心 等功能
5、优化微信渠道内容,避免无法搜索的场景,解决应用型问题
6、自带一套与官网一致的主题
组件
Jfinal
这个就不说了,一个MVC框架。
Ehcache
缓存框架,因为这个里面考虑的是本地的缓存所以,单机模式,所以在缓存的方案基本是懒加载以及缓存加载模式
public User getUser() {
if (user != null)
return user;
if (getUserId() == null)
return null;
user = UserQuery.me().findById(getUserId());
return user;
}上面是个Content 模型中获取用户的模式。
再举个缓存的例子;
if (ActionCacheManager.isCloseActionCache()) {
next.handle(target, request, response, isHandled);
return;
}
Action action = JFinal.me().getAction(target, urlPara);
if (action == null) {
next.handle(target, request, response, isHandled);
return;
}
ActionCache actionCache = action.getMethod().getAnnotation(ActionCache.class);
if (actionCache == null) {
actionCache = action.getControllerClass().getAnnotation(ActionCache.class);
if (actionCache == null) {
next.handle(target, request, response, isHandled);
return;
}
}
String originalTarget = (String) request.getAttribute("_original_target");
String cacheKey = StringUtils.isNotBlank(originalTarget) ? originalTarget : target;
String queryString = request.getQueryString();
if (queryString != null) {
queryString = "?" + queryString;
cacheKey += queryString;
}
ActionCacheManager.enableCache(request);
ActionCacheManager.setCacheKey(request, cacheKey);
ActionCacheManager.setCacheContentType(request, actionCache.contentType());
String renderContent = ActionCacheManager.getCache(request, cacheKey);
if (renderContent != null) {
response.setContentType(actionCache.contentType());
PrintWriter writer = null;
try {
writer = response.getWriter();
writer.write(renderContent);
isHandled[0] = true;
} catch (Exception e) {
RenderFactory.me().getErrorRender(500).setContext(request, response, action.getViewPath()).render();
} finally {
if (writer != null) {
writer.close();
}
}
} else {
next.handle(target, request, response, isHandled);
}上面是ActionCacheHandler.java的代码。
db.properties
由于Jpress 使用初始化模式,判断的就是db.properties 有没有,所以如果没有数据库,已经表结构的情况下,建议使用懒汉模式一步一步安装即可。
rm db.properties
Transcending CSS
Andy Clarke、Molly E. Holzschlag / New Riders / November 15, 2006 / $49.99
As the Web evolves to incorporate new standards and the latest browsers offer new possibilities for creative design, the art of creating Web sites is also changing. Few Web designers are experienced p......一起来看看 《Transcending CSS》 这本书的介绍吧!
