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

OSCHINA-MIRROR/weituotian-weituotian-video

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

驮神 Java EE разработка фреймворк

Всем привет! Меня зовут Веи Туотян, и сегодня я представляю вам свой выпускной проект — фреймворк для разработки на Java EE под названием «Аксион».

Аксион — это система авторизации для Java EE разработки. Она основана на Spring MVC 4.35, Spring 4.35, Hibernate 5.25, shiro, freemarker и AdminLTE Iframe.

Особенности

  1. Интерфейс администратора с использованием шаблона AdminLte With Iframe, многостраничный интерфейс с адаптацией под IE9+.
  2. Использование JPA в Hibernate (на основе Spring Data JPA), динамический поиск с использованием API Criterial и разбиение на страницы, а также прямой запрос JPQL без динамического поиска.
  3. Система авторизации на основе URL, пользовательский фильтр shiro с интеграцией ehcache для решения проблемы с частыми тайм-аутами при входе.
  4. Базовые классы Controller, Service и Dao для общих операций.
  5. Автоматическое подключение к системе авторизации shiro для пользователей приложения.
  6. Оптимизация запросов Hibernate: каждый запрос на странице ограничен четырьмя операторами SQL. При работе с ленивой загрузкой рекомендуется извлекать необходимые сущности или поля как можно раньше, чтобы избежать дополнительных запросов.
  7. Решение проблемы, когда использование shiro realm приводит к невозможности использования аннотаций транзакций в сервисе.
  8. Генерация дерева на стороне клиента, что улучшает производительность сервера.

Примеры проектов

  1. spring-shiro-training
  2. SpringMVC-Mybatis-shiro
  3. Администраторский интерфейс AdminLte With Iframe

Скриншоты

Компьютер

  • Пользователь
  • Роль
  • Ресурс
  • Распределение ресурсов
  • Назначение ролей
  • Динамическое управление меню

Мобильный телефон

Этапы развёртывания

  1. Используйте MySQL базу данных и импортируйте файл SQL из папки docs/sql/rbac_hibernate20170421.sql.
  2. Измените файл hibernater_config.property, указав свои настройки подключения к MySQL. Пример:
jdbc_url=jdbc:mysql://localhost:3306/rbac_hibernate?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
jdbc_username=root
jdbc_password=root
  1. Предположим, ваш контейнер Tomcat или Jetty настроен с контекстным путём webx. Тогда доступ к http://localhost:8080/webx/login позволит вам войти в систему администратора.

Начальные учётные данные

Администратор: admin/123123

Структура базы данных

На основе RBAC, описание таблиц базы данных:

Таблица базы данных Описание таблицы базы данных
user Пользователи, которые могут войти в систему
role Роли пользователей в системе
resource Управление ресурсами на основе URL
user_role Связь между пользователями и ролями
role_resource Связь между ролями и ресурсами
menu Меню системы администратора

Таблица user (пользователь)

Поле Тип Обязательное поле Первичный ключ Комментарий
id int(11) Да Да Идентификатор
loginname varchar(64) Нет Нет Логин
password varchar(64) Нет Нет Пароль, зашифрованный с помощью md5
email varchar(40) Нет Нет Электронная почта
name varchar(64) Нет Нет Имя
usertype int(2) Нет Нет 0 для обычного пользователя, 1 для администратора
status enum('OPEN','CLOSE') Нет Нет Статус: OPEN — активен, CLOSE — неактивен

Таблица role (роль)

Поле Тип Обязательное поле Первичный ключ Комментарий
id int(11) Да Да Идентификатор роли
name varchar(40) Да Нет Название роли
seq int(11) Нет Нет Последовательность
status enum('CLOSE','OPEN') Да Нет Состояние: 1 — активно, 0 — неактивно

Таблица user_role (связь между пользователями и ролями)

Поле Тип Обязательное поле Первичный ключ Комментарий
user_id int(11) Да Да ID пользователя
role_id int(11) Да Да ID роли

Таблица resource (ресурсы)

Поле Тип Обязательное поле Первичный ключ Комментарий
id int(11) Да Да Идентификатор ресурса
moudle_id int(11) Нет Нет ID модуля
name varchar(40) Да Нет Наименование ресурса
url varchar(100) Да Нет URL ресурса
status enum('CLOSE','OPEN') Да Нет Состояние ресурса: CLOSED — закрыт, OPEN — открыт
controller varchar(255) Нет Нет Контроллер
method varchar(255) Нет Нет Метод
module varchar(255) Нет Нет Модуль

Таблица role_resource (связь между ролями и ресурсами)

Поле Тип Обязательное поле Первичный ключ Комментарий
role_id int(11) Да Да ID роли
resource_id int(11) Да Да ID ресурса
--- --- --- --- ---
id int(11) Нет Да Id
auditTime datetime Да Нет Время прохождения аудита
click int(11) Да Нет Количество кликов
collect int(11) Да Нет Количество коллекций
cover varchar(255) Да Нет Путь к обложке
createTime datetime Да Нет Время создания
descript varchar(255) Да Нет Описание видео
path varchar(255) Да Нет Путь
play int(11) Да Нет Количество воспроизведений
totalTime int(11) Да Нет Общее время видео
updateTime datetime Да Нет Время обновления
videoState enum('Auditing', 'Uncommitted', 'ReEdit', 'AuditFailure', 'Audited') Да Нет Состояние видео
member_id int(11) Да Нет Идентификатор участника, загрузившего видео
partition_id int(11) Да Нет Идентификатор раздела
title varchar(255) Да Нет Заголовок
attachment_id int(11) Да Нет Идентификатор вложения
open_state enum('OPEN', 'CLOSE') Да Нет Открыто ли для общего доступа

video_tag — таблица связей между видео и тегами

Поле Тип Пустое поле Первичный ключ Комментарий
video_id int(11) Нет Нет Идентификатор видео
tag_id int(11) Нет Нет Идентификатор тега

Таблица video_tags — теги видео

Поле Тип Пустое поле Первичный ключ Комментарий
id int(11) Нет Да Идентификатор
createTime datetime Нет Нет Время создания
name varchar(255) Нет Нет Название

Описание отношений между участниками и видео:

Видео может иметь несколько комментариев, несколько тегов и только один файл MP4, который является вложением. Пользователи могут оставлять несколько комментариев, следить за несколькими пользователями и сохранять несколько видео.

Задачи для выполнения:

  • Проверка параметров.
  • Системные журналы.
  • Добавление функциональности пароля equal to в JS-плагин.
  • Оптимизация search_.
  • Оптимизация меню jstree.
  • Пользовательская проверка.
  • Выбор разных shiro realm для разных типов входа.
  • Favicon.
  • Управление шрифтами.
  • Spring MVC доступ к частоте запросов, ehcache кэширование.
  • Словарь и управление вложениями.
  • Реализация пользовательских аннотаций.

Решённые проблемы:

  • Модификация плагина dmuploader для отображения скорости загрузки.
  • Интеграция Cropper и dmuploader с возможностью обрезки и загрузки изображений через AJAX (IE9+).
  • Чтение свойств в Spring под контроллером.
  • Использование enum в mybatis, spring MVC и freemarker.
  • Конфигурация freemarker и spring MVC с использованием относительных путей к шаблонам.
  • Применение @ModelAttribute и RedirectAttributes.addFlashAttribute в spring MVC без обязательного указания параметров перенаправления в URL.
  • Работа с jstree и checkbox плагином, включая сворачивание всех элементов и открытие выбранных узлов.
  • Использование тегов shiro в freemarker.

Ссылки на блоги:

Ссылка

Обо мне:

Страница на Bilibili

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

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

Введение

Транспортировка божественной JavaEE-платформы разработки. На основе SpringMVC 4.35 + Spring 4.35 + Hibernate 5.25 + shiro + freemarker + AdminLTE Iframe. Есть пример видеосайта, есть соответствующее демонстрационное приложение для Android. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/weituotian-weituotian-video.git
git@api.gitlife.ru:oschina-mirror/weituotian-weituotian-video.git
oschina-mirror
weituotian-weituotian-video
weituotian-weituotian-video
1.5hibernate_video