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

OSCHINA-MIRROR/dataact-jeeweb

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

JeeWeb: быстрая разработка на основе SpringBoot, Spring, Mybatis и Hibernate

JeeWeb — это система быстрой разработки на основе Spring Boot 2, Spring, MyBatis и Hibernate. Это интеллектуальная платформа для быстрой разработки, которая использует Spring Framework в качестве основного контейнера, Spring MVC в качестве модели представления контроллера, Hibernate в качестве слоя доступа к данным, Apache Shiro для авторизации, Ehcache для кэширования часто используемых данных, Disruptor для параллелизма и Bootstrap в качестве фреймворка для фронтенд-разработки.

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

Платформа JeeWeb ориентирована на быструю разработку корпоративных приложений. Она включает множество встроенных функций и инструментов для генерации кода, таких как:

  • компоненты системы и прав доступа;
  • компоненты словаря данных;
  • инструменты ядра;
  • операции просмотра;
  • генерация кода;
  • библиотека тегов пользовательского интерфейса.

Для фронтенд-интерфейса используется структура Twitter Bootstrap, которая отличается простотой, производительностью и привлекательным внешним видом. Используется многоуровневая архитектура, безопасное кодирование и шифрование данных, а также проверка прав доступа и данных. Управление проектами осуществляется с помощью Maven, что упрощает разработку и расширяет возможности.

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

Процесс разработки с использованием JeeWeb включает следующие шаги:

  1. Быстрая генерация кода с помощью генератора.
  2. Ручная доработка логики.
  3. Разработка фронтенда с использованием библиотеки тегов.

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

Особенности JeeWeb

JeeWeb использует современную архитектуру веб-разработки, такую как SpringBoot, Mybatis, Hibernate, Apache Shiro, Disruptor, ehcache, Jquery, Bootstrap и другие технологии. Поддерживает различные базы данных: MySQL, Oracle, SQL Server и другие.

  • Многоуровневая архитектура: используется многоуровневая архитектура, которая разделяется на уровни DAO, Service, Controller, View. Архитектура имеет чёткую структуру, низкую связанность и высокую степень сцепления.
  • Безопасность: строго соблюдаются стандарты безопасности в интернете. Обеспечивается двойная аутентификация для передней и задней частей, кодирование параметров передачи, шифрование паролей с помощью MD5, проверка прав доступа с использованием Shiro. Это помогает предотвратить распространённые атаки, такие как SQL-инъекции, XSS-атаки и CSRF-атаки.

Характеристики JeeWeb

  • Использование базовой архитектуры переднего и заднего плана, такой как SpringBoot + Spring + Mybatis + Hibernate + Shiro + Ehcache + Disruptor + Jquery + Bootstrap + Ztree.
  • Применение декларативного подхода к разработке, основанного на использовании универсальных шаблонов. Требуется небольшое количество кода для создания сложных функций отображения данных, редактирования данных и обработки форм. Без использования генераторов кода можно реализовать базовые операции CRUD. В сочетании с онлайн-разработкой и генераторами кода это ускоряет процесс разработки и повышает эффективность разработки J2EE.
  • Онлайн-разработка: позволяет создавать модели таблиц, выполнять операции добавления, удаления, изменения и запроса без написания кода. Поддерживается пользовательская настройка макета формы.
  • Генератор кода: поддерживает различные модели данных. Генерирует соответствующие классы Entity, Service, Dao, Controller и JSP на основе таблиц. Реализует функции добавления, удаления, изменения и запроса.
  • Библиотека UI-тегов: предоставляет стандартные теги для разработки интерфейсов. Включает в себя компоненты DataGrid, TreeGrid, FileInput, Editor, GridSelect и другие, что позволяет разрабатывать страницы JSP без использования JavaScript.
  • Фильтры запросов: позволяют настраивать фильтры запросов на передней панели. Поддерживают различные способы сопоставления (точное соответствие, частичное соответствие, включение, исключение).
  • Поддержка мобильных платформ: обеспечивает поддержку мобильных устройств с использованием Bootstrap (совместимого с HTML5).
  • Гибкий контроль доступа: позволяет контролировать доступ до уровня страниц или кнопок, удовлетворяя большинство требований к контролю доступа. Оптимизированные аннотации прав доступа упрощают настройку прав доступа.
  • Комплексная защита от XSS: предотвращает XSS-атаки путём тщательной фильтрации.
  • Распределённая развёртывание: сеансы хранятся в Redis.
  • Удобная структура кода и комментарии: облегчают чтение и вторичную разработку.
  • Введение Quartz для планирования задач: позволяет динамически добавлять, изменять, удалять, приостанавливать, возобновлять и просматривать задачи.
  • Поддержка Swagger: упрощает создание документации API.
  • Интернационализация: поддержка многоязычности и интернационализации.
  • Много источников данных: позволяет настраивать источники данных онлайн.
  • Контроль доступа к данным: интеграция с Shiro для контроля доступа к данным.
  • Планирование задач: возможность настройки плановых задач онлайн, включая изменение времени выполнения.
  • Отправка сообщений: настройка шаблонов сообщений, учётных записей для отправки сообщений онлайн, асинхронная отправка сообщений и ведение журнала отправки.
  • Отправка SMS: настройка шаблонов SMS, учётных записей для отправки SMS онлайн, асинхронная отправка SMS и ведение журнала отправки, а также поддержка переключения между платформами отправки SMS.
  • Несколько стилей домашней страницы: поддержка пользовательских стилей домашней страницы (Inspinia и ACE).
  • Отчётность по статистике: предоставляет разнообразные функции отчётности.
  • Совместимость с браузерами: поддерживает Google Chrome, Firefox, Internet Explorer и 360.
  • Базы данных: поддерживает MySQL, Oracle 10g, SQL Server.
  • Основные права доступа: пользователи, роли, разрешения меню.
  • Тестирование контейнеров: прошёл тестирование с Jetty и Tomcat, Weblogic.
  • Требования: JDK 1.8+.

Выбор технологий

  1. Бэкенд
  • Основная структура: Spring boot 2.0, Spring Framework.
  • Структура безопасности: Apache Shiro.
  • Проверка сервера: Hibernate Validator.
  • Шаблоны тегов: Beetl.
  • Планировщик задач: Quartz.
  • Слой персистентности: Hibernate.
  • Пул соединений с базой данных: Alibaba Druid.
  • Кэш: Redis, Ehcache.
  • Параллельная структура: Disruptor.
  • Управление журналами: SLF4J, Log4j.
  • Инструменты: Apache Commons, Jackson, Xstream.
  1. Фронтенд
  • JS-фреймворк: jQuery.
  • CSS-фреймворк: Twitter Bootstrap.
  • Клиентская проверка: Validform.
  • Редактор форматированного текста: markdown, simditor, Summernote, CodeMirror (свободное переключение).
  • Инструмент загрузки файлов: Bootstrap fileinput.
  • Таблицы данных: jqGrid.
  • Диалоговые окна: layer.
  • Компонент дерева: jQuery zTree.
  • Календарь: datepicker.
  • Подсветка кода: syntaxhighlighter.

Простое использование

  • Импортируйте каталог jeeweb и файл sql/mysql.sql в базу данных MySQL.
  • Загрузите проект в Idea. Рекомендуется использовать IDEA для разработки, так как проект использует модульную разработку.
  • Измените конфигурацию базы данных в файле application.yml.
  • Запустите проект. Используйте учётную запись администратора admin и пароль 123456.

Структура каталога платформы

jeeweb
├─jeeweb-common     公共模块
│    ├─jeeweb-common-base  公用基础模块
│    │ 
│    ├─jeeweb-common-email  邮件基础模块
│    │ 
│    ├─jeeweb-common-hibernatemvc  hibernate公用模块
│    │ 
│    ├─jeeweb-common-mybatismvc  mybatis公用模块
│    │ 
│    ├─jeeweb-common-oss  数据存储公用模块
│    │ 
│    ├─jeeweb-common-quartz  quartz公用模块
│    │ 
│    ├─jeeweb-common-query  查询封装模块
│    │ 
│    ├─jeeweb-common-security  安全公用模块
│    │ 
│    ├─jeeweb-common-sms  短信公用模块
│    │ 
│    └─jeeweb-common-utils 公用工具模块

├─jeeweb-ui     UI模块
│    ├─jeeweb-beetl-tag  基于beetl的类似spring form的模板标签
│    │ 
│    ├─jeeweb-ui-static  公用静态资源模块
│    │ 
│    └─jeeweb-ui-tag  基于静态资源模块的标签

├─jeeweb-web  业务模块
│    ├─jeeweb-admin  后台案例模块
│    │ 
│    ├─jeeweb-bbs Jeeweb官方论坛代码模块
│    │ 
│    ├─jeeweb-vue 前后端分离后端模块
│    │ 
│    └─jeeweb-generator  代码生成器模块

``` ###  [1].GRID 列表

<#grid:grid id="onlineGrid" datatype="local" datas="${onlineSessionList}" sortname="startTimestamp" sortorder="desc"> <#grid:column label="sys.common.key" hidden="true" name="id" width="100"/> <#grid:column label="Пользователь" name="username" /> <#grid:column label="IP-адрес пользовательского хоста" name="host" /> <#grid:column label="Системный IP-адрес хоста" name="systemHost" /> <#grid:column label="Время входа" name="startTimestamp" width="140" queryMode="date" condition="between" /> <#grid:column label="Последнее время доступа" name="lastAccessTime" width="140"/> <#grid:column label="Статус" name="status" dict="onlinestatus" /> <#grid:column label="User-Agent" name="userAgent" /> <#grid:column label="Идентификатор пользовательской сессии" name="id" />

<#grid:toolbar title="Принудительный выход" btnclass="btn-danger" icon="fa-trash-o" function="toolbarSelectConfirm"  url="${adminPath}/sys/online/forceLogout"  tipMsg="Вы действительно хотите принудительно выйти из системы? Будьте осторожны!"/>

</#grid:grid>


###  [2].TREEGRID список

<#grid:grid id="organizationGrid" async="true" treeGrid="true" expandColumn="name" url="${adminPath}/sys/organization/ajaxTreeList"> <#grid:column label="sys.common.key" hidden="true" name="id" width="100"/> <#grid:column label="Название организации (sys.organization.name)" name="name" query="true" condition="like" /> <#grid:column label="Комментарии к организации (sys.organization.remarks)" name="remarks" /> <#grid:column label="Общие опции (sys.common.opt)" name="opt" formatter="button" width="100"/> <#grid:button groupname="opt" function="delete" />

<#grid:toolbar  function="add"/>
<#grid:toolbar  function="update"/>
<#grid:toolbar  function="delete"/>
<#grid:toolbar  function="search"/>
<#grid:toolbar  function="reset"/>

</#grid:grid>


### [3]. Код формы

<% layout('/layouts/form.html', {title: @MessageUtils.getMessage('sys.user.updateuser',''), formId: 'userForm', bodyClass: 'white-bg', libs: 'bootstrap-fileinput'}){ %> <#form:form id="userForm" modelAttribute="data" method="post" class="form-horizontal"> <#form:hidden path="id" />

Имя пользователя: ${data.username} *Фамилия:
*Электронная почта: *Контактный телефон:
*Роль пользователя:
Организация:
#form:form> ```

Обновление информации

  • Проект переведён на модульную разработку с зависимостями.
  • Генератор кода выделен в отдельный проект, который был запущен и некоторые функции обновлены.
  • Фронтенд-шаблонизатор заменён на Beetl для более быстрой и удобной работы с интерфейсом.
  • Проект теперь использует Spring boot 2.0, что упрощает процесс разработки.
  • Для управления интерфейсами используется Swagger.
  • Управление сессиями осуществляется через Redis, что облегчает развёртывание кластера.
  • Обновлена функция логирования: теперь есть отдельные логи для входа и операций.
  • Введён планировщик Quartz для динамического выполнения задач, включая добавление, изменение, удаление, приостановку, возобновление и просмотр журналов.
  • Улучшен опыт разработки.

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

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

Введение

JEEWEB — это платформа для разработки, которая основана на SpringBoot 2.0, MyBatis и Shiro. Она разработана с использованием модульного подхода и имеет низкий порог входа. Это готовая к использованию платформа, поддерживающая разделение разработки на клиентскую и серверную части, аутентификацию версии 2.0 (Auth2.0), SMS-уведомления, электронную ... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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