LINUX.ORG.RU

SpringBlog v2.6

 , , ,


5

3

Вношу свою лепту на благо OpenSource: представляю вам, лорчане, мой форк платформы для ведения блога SpringBlog (исходный код на github).

Предыстория

Мной был найден давно заброшенный (в 2015 г.) репозиторий движка для ведения блогов студента китайского ВУЗа Jiankun LEI (aka Raysmond), написанный на SpringBoot версии 1.4.0. Проект показался мне довольно интересным, он очень шустрый (отдача страниц порядка 63 мс), к тому же, его деплой не вызвал проблем.

Особенности, библиотеки, технологии

  • SpringBoot и многие другие технологии из семейства Spring (такие, как Spring MVC, Spring JPA, Spring Secruity и др.).
  • Hibernate + PostgreSQL (изначально MySQL).
  • HikariCP — высокопроизводительный пул JDBC-соединений.
  • Bootstrap 3 — популярный и отзывчивый веб-фреймворк.
  • ACE Editor — высокопроизводительный редактор, используется для составления постов.
  • Flexmark — реализация CommonMark 0.28. Преобразователь текста Markdown, написанный на Java
  • Jade4j — элегантный, минималистичный шаблонизатор html jade. написанный На Java.
  • Многие клиентские библиотеки и фреймворки опакечены и помещены в Maven-репозитории для удобства использования. С помощью Webjars подключены Bootstrap и jQuery.
  • Redis — мощный in-memory сервер для хранения кеша.
  • github-markdown-css — подсветка синтаксиса Markdown на CSS.

История изменений с версии 1.0 до 2.6 (мои)

  • 2017-11-09
    • Реализованы загрузка файлов и ссылки на загруженные файлы (информация хранится в базе, сами файлы в ФС)
  • 2017-11-08
    • Добавлены кнопки «поделиться в соцсети» (sharing buttons) с помощью сервиса sharethis.com - требуется изменение кода верификации на главной странице
    • Из зависимостей убраны Jython, Pygments and Pegdown. Добавлена обработка Markdown текста с помощью Flexmark и github-markdown-css
  • 2017-11-07
    • Добавлена кнопка перехода к панели администрирования из основного меню для пользователя с ролью 'admin'
    • Добавлены SEO meta-tags:
      • list of keywords
      • description
    • Изменены заголовки html > head > title для страниц постов
  • 2017-11-03
    • Создание форка оригинального SpringBlog by Raysmon
    • Миграция на SpringBoot 1.5.8, обновлены все библиотеки из зависимостей

На гитхабе я дал ссылку на пример, можно посмотреть, как выглядит блог.

>>> Исходный код

★★★★★

Проверено: Shaman007 ()

Легковесный со спрингом, хибернейтом, постгрей и редисом??

leave ★★★★★ ()
Ответ на: комментарий от leave

давай подберем другое прилагательное, которое характеризует скорость отдачи страниц. Ну вернее, да, прилагательные - скоростной, шустрый.

bvn13 ★★★★★ ()
Последнее исправление: bvn13 (всего исправлений: 1)

Спасибо за новость. Хорошим делом занялись.

Odalist ★★★★★ ()

А чем он лучше блогспота, или, например, движка ЖЖ (который, внезапно, opensource)? Тем, что Java?

EternalNewbie ()
Ответ на: комментарий от leave

будто ты не знаешь, что спринго-обезьяны плохо представляют себе лгековестность и вообще что либо за пределами спринга.

anonymous ()
Ответ на: комментарий от EternalNewbie

блогспот можно развернуть локально? а еще он грузит страницу долго. про ЖЖ я вообще молчу. вырвиглазно, тормозно, монструозно.

bvn13 ★★★★★ ()
Ответ на: комментарий от EternalNewbie

Тем, что Java?

да. я не даю всеобщую платформу для блогов. это лишь движок для развертывания для себя. и да, отлично подходит в целях обучения озвученным технологиям, т.к. в проекте очень хороший стиль кода, все ясно и понятно

bvn13 ★★★★★ ()
Ответ на: комментарий от anonymous

почему все жабохейтеры пишут из анонюмуса? боитесь быть вычислимыми по ойпи?

bvn13 ★★★★★ ()

Умеет хотя бы в теги/категории?

nihirash ★★ ()
Ответ на: комментарий от bvn13

Я пишу на Яве за деньги, но меня уже тошнит от Спринга и Хибернейта! Более громоздкое и бесполезное говно сложно придумать. Есть много реально хороших и действительно легковесных инструментов. Но зачем искать, есть же Спринг;)

romero ()

интересно, спасибо.

не планируешь переезд на 2й спринг бут?

drsm ()
Ответ на: комментарий от bvn13

блогспот можно развернуть локально?

Да, при наличии локального веб-сервера. А в случае твоего движка это сильно проще?

а еще он грузит страницу долго.

Здесь соглашусь.

EternalNewbie ()
Ответ на: комментарий от EternalNewbie

я никогда не разворачивал блогспот, сравнить не с чем. Для разворачивания SpringBlog нужно создать базу, прописать имя пользователя, базу, пароль в конфиг и собрать.

bvn13 ★★★★★ ()
Ответ на: комментарий от bvn13

почему все жабохейтеры пишут из анонюмуса?

Давай не будем говорить за всех.

Rodegast ★★★★★ ()

Для начала бы натянуть какой-то симпатичный шаблон, их много бесплатных и Open Source... И потом в описание добавить - будет меньше людей проходить мимо

eReSik ★★ ()

А что в редисе хранится? Сессия авторизации?

UnknownNPC ()
Ответ на: комментарий от bvn13

Для разворачивания SpringBlog нужно создать базу, прописать имя пользователя, базу, пароль в конфиг и собрать.

омг, в хороших домах достаточно кинуть war файл в tomcat

ты кстати забыл, что еще надо редис поставить

subwoofer ★★★★★ ()

Java != скорость ИМХО нужность 1% из 100 PS: для поиграться возможно кому-то и нужно

dengolius ()
Ответ на: комментарий от romero

А вот кстати - какие? :) ну то есть более-менее популярные в ява сообществе...

vitalif ★★★★ ()
Ответ на: комментарий от subwoofer

ты кстати забыл, что еще надо редис поставить

не забыл, он embedded

bvn13 ★★★★★ ()
Ответ на: комментарий от bvn13

поэтому его надо пересобирать при изменении конфига?

subwoofer ★★★★★ ()

но зачем тратить время на ненужную чушь?

есть уже WP с инновационным блочным редактором Gutenberg и с милионом готовых тем и плагинов.

особые эстеты могут запускать на JVM с помощью http://caucho.com/products/resin/download/gpl#download

Spring и прочие жабофремворки - для серьезных задач. типа онлайн Сбербанк или ГИС-ЖКХ.

anonymous ()

он очень шустрый (отдача страниц порядка 63 мс)

А в секундах это сколько? А то некоторые часто путают и могут 0.63с назвать 63 милисекундами.

anonymous ()

покажи хоть один блог

anonymous ()

Молодец

Вы просто молодец.

Camel ★★★★★ ()
Ответ на: комментарий от romero

Вертекс пока не очень популярен... я его сам непосредственно сейчас щупаю (тем вопрос и вызван), даже пробуем проект на нём сделать, НО возникает проблема - ынтырпрайз жаждет каких-нибудь activiti и пентахо, а оно туда интегрируется кажется как пятая нога. А рожать очередную толсто-сервисную архитектуру на WARниках чо-то не хочется... Ну и мелочи - лестница колбэков либо quasar (юзаем пока quasar но это немного упорото конечно (ну, можно конечно всё на воркеров переделать...)) + невозможность штатными методами посадить обработчики из двух вертиклов в один роутер (то есть на один http порт), что влечёт за собой очередные извращения, либо находить дырочку и шарить таки роутер (вопреки заветам авторов, баг стоит), либо всё прокидывать через eventbus и терять поддержку кук, сессий, боди хендлеров и т.п. (оно там всё гвоздями намертво к роутеру прибито), либо сажать на разные порты и оборачивать ещё каким-нить апи гейтвеем но это тупняк на пустом месте +хоп плодить. Либо делать всё одним вертиклом (это, видимо, самый нормальный вариант, да). А вот JsonObject это мечта, почему раньше никто не додумался, непонятно.

Может если аккуратненько приготовить спринг, не так уж он и страшен будет? :)

А ещё чо-нить есть?

vitalif ★★★★ ()
Последнее исправление: vitalif (всего исправлений: 5)
Ответ на: комментарий от subwoofer

а базу данных ангелы под звуки труб и арф принесут?

dzidzitop ★★ ()
Ответ на: комментарий от dzidzitop

тебе только ежей, а остальным для потыкать хватит встроенной

subwoofer ★★★★★ ()
Ответ на: комментарий от subwoofer

Что такое «встроенная база данных», особенно в контексте томката?

dzidzitop ★★ ()

А почему-бы в редисе не хранить сессии? Я так понимаю вся информация о сессии в хранится в постгресе и дергается при каждом запросе, где нужна авторизация?

anonymous ()
Ответ на: комментарий от anonymous

Фу, жаба

как ни крути, но андройд сильно на жабе. Что кстати символично, ведь жава создавалась для бытовой техники. Просто потом с ней что-то стало...

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.