Полагаю, что всё же придётся написать заключение после завершения работы и добавить запись в раздел обновлений http://www.duzhi.me/duzhi_up_log.html.
https://www.duzhi.me/article/7284.html
Если вас заинтересует, вы можете посетить Seesee, конечно, начиная с сегодняшнего дня. Если вам нужны архивные записи, доступны метки URL: http://www.duzhi.me/article-jpress-1.html
Вы также можете просмотреть это.
ILog CMS основан на JPress (http://jpress.io) и обновлен с его использованием. JPress использует MVC и быстрое развитие модулей на основе JFinal.
Это MVC-фреймворк, поэтому подробное описание пропущено.
Кэширование, поскольку здесь рассматривается локальное кэширование, то используется одиночный режим машины. Поэтому основной подход к кэшированию — ленивая загрузка и кэширование данных.
public User getUser() {
if (user != null)
return user;
if (getUserId() == null)
return null;
user = UserQuery.me().findById(getUserId());
return user;
}
Пример выше показывает метод получения пользователя в модели Content.
Другой пример использования кэша:```java 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());
### Действие ActionCacheHandler.java
```java
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);
}
Поскольку JPress использует режим инициализации, проверка осуществляется на наличие файла db.properties
. Поэтому, если база данных и её структура отсутствуют, рекомендуется использовать ленивый режим и пошагово выполнять установку.```shell
rm db.properties
### Инструкция по использованию:
Статьи по JPress: http://www.duzhi.me/article-jpress-1.html
Инструкция по конфигурации темы ILogCMS: http://www.duzhi.me/article/1105.html
Инструкция по разработке веток ILogCMS: http://www.duzhi.me/article/1104.html
Журнал обновлений: http://www.duzhi.me/duzhi_up_log.html
Руководство по вторичной разработке JPress: http://www.duzhi.me/jpress_doc.html
Сначала я добавлю немного информации, а затем буду дополнять её по мере необходимости.
Текущий сайт: http://www.duzhi.me
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )