Рубрики
Без рубрики

Создайте блог на основе уценки с помощью Spring Boot – Часть 4

Прежде чем продолжить часть 4 этой серии, убедитесь, что вы ознакомились с предыдущими тремя частями… С тегами java, spring boot, thymeleaf, уценка.

Блог Markdown с пружинной загрузкой (Серия из 6 частей)

Прежде чем продолжить часть 4 этой серии, убедитесь, что вы также ознакомились с предыдущими тремя частями: Часть 1 | Часть 2 | Часть 3

На данный момент у нас есть готовая база данных, и мы установили соглашения о том, как и где мы храним наши файлы уценки. Эти файлы уценки будут проанализированы, строка за строкой, и представлены в виде строки HTML, прежде чем мы сохраним ее в базе данных. Для синтаксического анализа и визуализации мы уже определили некоторые служебные классы — Msfilereader и Md Для визуализации Html .

Для этого сеанса мы напишем класс, который реализует ApplicationListener интерфейс такой, что при каждом запуске ContextRefreshedEvent наш класс прослушивателя событий’ Вызывается метод onApplicationEvent . В рамках метода onApplicationEvent мы ищем новые файлы уценки, и если такой новый файл существует, мы сохраняем его в базе данных.

Но перед этим нам нужно добавить еще одну зависимость – jsoup .

Добавление зависимости jsoup

Помните, как у нас есть атрибут краткий обзор в сущности Post ? Мы будем использовать этот атрибут (или поле в базе данных) и установим его в первые 150 символов текста фактического сообщения. Однако после анализа уценки и отрисовки HTML-кода из нее тело сообщения будет выглядеть, скажем,

Hello World!


This is the post's actual body, rendered in HTML!

Как вы можете себе представить, большая часть отображаемого текста на самом деле представляет собой HTML-элементы и символы. Следовательно, нам нужно выбрать первые 150 символов из фактического текста, исключая HTML-элементы и символы.

Нам понадобится jsoup для выполнения именно этого. Чтобы добавить jsoup в качестве одной из наших зависимостей, обязательно добавьте следующий сегмент в свой pom.xml файл.

Как и раньше, загрузите изменения Maven в свой файл POM.

Затем мы можем перейти к нашему классу слушателей событий.

Класс ContextEventListener

Начните с создания класса, реализующего интерфейс ApplicationListener , который принимает в качестве параметра типа ContextReferencedEvent тип. При этом нашему классу потребуется переопределить метод onApplicationEvent .

Нам также нужны некоторые переменные экземпляра для целей, которые скоро станут очевидными.

Со значением @ , , мы вводим в файлы post массив Ресурсов типа, любые файлы, которые существуют в пути к классам внутри каталога posts

Затем мы можем реализовать наш метод onApplicationEvent .

В этом методе мы начинаем с перебора каждого файла в массиве post Files . Мы проверяем, существует ли в базе данных запись с тем же идентификатором, что и файл. Если это не так, мы сохраняем запись в базе данных. Перед сохранением записи мы устанавливаем ее атрибуты.

Обратите внимание, как мы используем статические служебные методы из После использования и Автор Использует классы для операций, касающихся сообщений и авторов соответственно.

Классы PostUtil и Author Util

В классе Postutil мы определяем методы: getHtmlContentFromMdLines и получить Краткий Обзор Из Содержимого Html .

getHtmlContent Из строк Md возвращает Строку содержимого HTML, отображаемого с использованием Списка строк уценки, переданных в качестве аргумента.

Метод получить краткий обзор из содержимого Html возвращает первые 150 символов текстового содержимого, проанализированного из содержимого HTML, переданного в качестве аргумента. Если длина текстового содержимого составляет менее 150 символов, возвращается вся Строка .

В классе Author Util мы определяем метод: Автор начальной загрузки . Если в базе данных нет автора, он создает нового автора, прежде чем сохранить его в базе данных, и возвращает его. В противном случае он возвращает первого автора, существующего в базе данных.

Запустите его

Теперь, когда мы запускаем наше приложение Spring Boot или всякий раз, когда мы вызываем обновление контекста Spring, запускается ContextRefreshedEvent . Это ищет новую запись в блоге в каталоге ресурсы/сообщения/ и сохраняет ее.

Чтобы проверить это, давайте создадим каталог posts внутри каталога ресурсы .

Внутри него я создам новый файл 1_Hello_World!.md со следующим содержимым.

# Hello World!
This is my *first* blog post. 
Be sure to read future parts of this blog post series,
titled **Build a Markdown-based Blog with Spring Boot**.

Затем давайте запустим наше приложение Spring Boot. После запуска JVM мы можем проверить нашу базу данных, чтобы убедиться, что наш новый пост в блоге успешно сохранен вместе с автором.

Код

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

Репозиторий GitHub был обновлен с помощью кода этой сессии , проверьте его. Или, если вам нужно проверить код предыдущих сеансов , пожалуйста, сделайте то же самое.

Блог Markdown с пружинной загрузкой (Серия из 6 частей)

Оригинал: “https://dev.to/roshanadh/build-a-markdown-based-blog-with-spring-boot-part-4-d58”