1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/loveyy-spring-boot-framework

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Spring boot framework study

1. История

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

Spring Boot уже реализовал некоторые аннотации bean, но для проверки или сброса параметров я частично переписал код. Надеюсь, это поможет улучшить работу.

2. Содержание

  1. Фронтенд Я всегда плохо разбирался в CSS и макетах, поэтому здесь я использовал фронтенд-шаблон SmartAdmin, который содержит множество компонентов: JQuery, Bootstrap, Echarts, Datatables, Ztree, Treetable, Validate, Layer и другие. Вы можете посмотреть их самостоятельно:

    • Изображение 1
    • Изображение 2
  2. Бэкенд

    В основном это куча компонентов Spring-Boot, таких как web, webmvc, validation, cache, aop, jdbc, data, mail, websocket, mq и т. д.

    • JSON-связанные компоненты: gson, jackson.
    • Связанные с логированием компоненты: logback, slf4j.
    • Связанный с пулом соединений компонент: druid.
    • Шаблонизатор: beetl.
    • ORM-фреймворк: mybatis, mybatis-plugin.
    • Драйвер для работы с базой данных: redis.
    • Драйверы для баз данных: mongodb, rabbitmq.
    • Компоненты для авторизации: shiro.
    • Отчётность: jasperreports + poi + itext. Также используется phantomjs для динамического создания графиков отчётов.
    • Отправка почты: mail.
    • Планирование задач: quartz.
    • Общедоступные библиотеки: apache commons, guava и др.
    • API-компоненты: swaggerui.
    • Также есть поддержка openid для сторонних сервисов аутентификации, веб-сокетов, QR-кодов, XML, мониторинга с помощью sigar, преобразования документов, консоли и т.д. Все эти компоненты имеют комментарии в файле pom.xml.

3. Скриншоты

Вход в систему

Изображение 1

Панель управления

Изображение 2

Мониторинг MySQL

Изображение 3

Мониторинг Redis

Изображение 4

Мониторинг MongoDB

Изображение 5 Изображение 6

Сервер мониторинга

Изображение 7 Изображение 8

Tomcat мониторинг

Изображение 9

Список запланированных задач

Изображение 10

История запланированных задач

Изображение 11

Редактирование запланированных задач

Изображение 12

Конфигурация выражений Quartz

Изображение 13 Изображение 14

Отладка и логирование

Изображение 15 Изображение 16

Динамическая отладка и внедрение

Изображение 17 Изображение 18

Список консолей

Изображение 19

Удаленная конфигурация хоста

Изображение 20

SSH на удаленный хост, экранная клавиатура и SFTP для загрузки и скачивания файлов

Изображение 21 Изображение 22 Изображение 23

Соединение с удаленным хостом через RDP (похоже на VNC)

Изображение 24 Изображение 25

Чтение PDF-файлов на бэкенде

Изображение 26

Создание отчётов с помощью PhantomJS

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

Этот фреймворк содержит множество компонентов, и его запуск может быть довольно сложным. Конечно, вы можете установить все переключатели в application.properties на false, чтобы упростить процесс запуска.

  1. Прежде всего, вам нужно уметь использовать Maven. Вкратце, измените настройки mysql, redis и mongodb в файле application.properties в соответствии с вашей конфигурацией и выполните команду mvn package -DskipTests. Для создания jar-файла или war-файла необходимо изменить файл pom.xml. Я рекомендую использовать war для развёртывания в облаке Alibaba, поскольку sigar содержит dll, а phantomjs является исполняемой программой, что требует использования программы для обработки их расположения при создании jar-файлов.

  2. Вам необходимо знать, как использовать MySQL. Этот проект использует базу данных MySQL, так как он использует mybatis. Вы должны понимать, что невозможно изменить специфический синтаксис SQL без изменения файлов mybatis XML.

  3. Вам нужно знать, как работать с Tomcat или Jetty. Некоторые распространённые конфигурации и сценарии находятся в папке tools, но, по крайней мере, вы должны уметь их читать. Конфигурация Tomcat включает порт, SSL и некоторые оптимизации потоков.

  4. Вам нужно знать, как использовать Redis. Этот проект можно развернуть в распределённой среде, где используется Redis для распределённого кэширования. По крайней мере, вам необходимо уметь устанавливать и настраивать его.

  5. Вам нужно знать, как использовать RabbitMQ. Проект компании использует MQ, ранее это был activeMQ, который был слишком большим, теперь он заменён на RabbitMQ. В этом проекте реализованы основные функции прослушивания, включая отправку сообщений точка-точка, публикацию-подписку и обмен сообщениями точка-многоточка.

  6. Вам нужно знать, как использовать MongoDB. Компания также использует MongoDB, и этот проект включает базовую интеграцию с использованием Spring-data.

  7. Вам нужно знать, как использовать Guacamole. Если вам нужна удалённая консоль, например, для просмотра VNC\RDP\SSH через веб-браузер, скомпилируйте сервер guacamole, клиент уже готов.

  8. Вам нужно иметь базовые навыки работы с Linux. Разработка обычно выполняется на Mac, а развёртывание — на centos. Необходимо знать команды установки для этих программ.

  9. Вам нужно уметь работать с nginx. Развёртывание в распределённом режиме требует знания nginx, конфигурация уже написана, просто измените IP-адрес.

Реализована структура распределения nginx + tomcat + redis.

    1. Самое простое распределённое развёртывание основано на совместном использовании сеансов веб-контейнеров, но у этого подхода есть некоторые проблемы. Подробности см. в документации по развёртыванию nginx.
    1. Этот фреймворк использует shiro для замены сеансов веб-контейнера и реализует совместное использование сеансов.
    1. Поскольку shiro извлекает свойства сеанса каждый раз, когда они используются, это приводит к множественным запросам на получение свойств сеанса в одном запросе. Если это локальный кэш, это не проблема, потому что локальный кеш напрямую хранит объекты сеанса. Однако, если это общий кэш, такой как redis, каждый запрос должен получать сеанс из redis, а затем десериализовать его, что может привести к снижению производительности.
    1. Здесь используется redis для хранения сессий кластера shiro, и ehcache можно настроить в качестве внутреннего кэша процесса. Совместное использование сессий реализуется через подписку и публикацию сообщений redis.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/loveyy-spring-boot-framework.git
git@api.gitlife.ru:oschina-mirror/loveyy-spring-boot-framework.git
oschina-mirror
loveyy-spring-boot-framework
loveyy-spring-boot-framework
master