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

OSCHINA-MIRROR/erupt-erupt

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 26 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 03.03.2025 22:12 808bde9

中文   |   English

logo

Erupt Framework   🚀   Универсальная система управления данными

Ноль кода на фронтенде, быстрое создание универсальной системы управления

https://www.erupt.xyz


Erupt Framework maven-central jdk 8+ license Apache 2.0 gitcode Gitee star Gitee fork GitHub stars GitHub forks

GitHub репозиторий   |   GitCode репозиторий   |   Репозиторий на Gitee   |   Официальный сайт   |   Интерактивное тестирование   |   Экосистема фреймворка   |   📘 Документация использования


Erupt Cloud【Облачная архитектура】   |   Linq.J   |   Erupt BI 【Анализ данных】   |   Erupt Tenant 【Многопользовательская система】


QQ общение: 836044286 🔥


🚀 Введение | Intro

Erupt — это низкоуровневый полносайтовый фреймворк, который использует Java аннотации для динамического создания страниц и выполнения операций CRUD, управления правами доступа и других функций.

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

Высокая расширяемость, поддерживает свободное расширение CRUD @DataProxy, пользовательских источников данных, логической удаленной записи, LDAP, OSS.

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

Первоклассная замена генератору кода, лучшее решение для разработки систем управления.

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

🌈 Основные характеристики | Features

  • Автоматическое создание таблиц: структура таблицы генерируется автоматически, нет необходимости вручную создавать таблицы

  • Простота использования: достаточно знать основы Spring Boot

  • Легкость применения: требуется понимание только двух аннотаций - @Erupt и @EruptField

  • Конкретность кода: требуется всего один файл .java, нет необходимости создавать шаблоны, контроллеры, сервисы, DAO

  • Сильные возможности: динамическая обработка условий, логическая удаленная запись, LDAP, пользовательские механизмы входа, RedisSession, журнал действий и т.д.

  • Поддержка множества источников данных: поддерживается MySQL, Oracle, SQL Server, PostgreSQL, H2, даже MongoDB

  • Высокая расширяемость: поддерживает пользовательские реализации источников данных, пользовательские механизмы входа, динамическое управление правами доступа, жизненный цикл функций, пользовательские OSS

  • Много компонентов: скользящие поля ввода, выбор времени, один ко многим, загрузка изображений, редактор кода, автозаполнение, деревья, многие ко многим, карты и т.д., всего 23 типа компонентов

  • Разнообразные представления: обычный текст, QR-код, ссылки, изображения, HTML, фрагменты кода, iframe, swf и т.д.


  • Низкая вторжение: почти все функции основаны на аннотациях, что не влияет на использование других функций Spring Boot или сторонних библиотек

  • Отделение фронтенда от бэкенда: бэкенд и фронтенд могут быть размещены отдельно

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

  • Пользовательские страницы: поддерживает пользовательские страницы и модальные окна, поддерживаются способы рендеринга: native H5 / Freemarker / Thymeleaf

  • Фронтенд без кода: автоматическое создание дизайна фронтенда, ни одной строки кода не требуется

  • Не требуются повторные разработки: достаточно использовать jar-пакет!

🧐 Почему был создан Erupt?

Хотя за последние годы генераторы кода стали новым трендом в разработке backend, являются ли они оптимальным решением?

Основой работы генераторов кода является создание сложного кода на фронтенде и бэкенде. После изменения сложно объединять новые версии сгенерированного кода, как это происходит с Mybatis-Generator, который обычно используется однажды. Хотя он снижает часть нагрузки, метод решения не является оптимальным.При разработке backend-систем большую часть времени требуется просто создать простые формы CRUD для управления данными, такие как:

PS: erupt позволяет определить сложные пользовательские страницы, подробнее см. erupt-tpl модуль

результат результат

@Erupt(
        name = "Пример",
        power = @Power(importable = true, export = true)
)
@Table(name = "t_simple")   // имя таблицы базы данных
@Entity
public class Simple extends BaseModel {

    @EruptField(
            views = @View(title = "Текст"),
            edit = @Edit(title = "Текст", notNull = true, search = @Search)
    )
    private String input;

    @EruptField(
            views = @View(title = "Число", sortable = true),
            edit = @Edit(title = "Число", search = @Search)
    )
    private Float number;

    @EruptField(
            views = @View(title = "Логический"),
            edit = @Edit(title = "Логический", search = @Search)
    )
    private Boolean bool;

    @EruptField(
            views = @View(title = "Дата"),
            edit = @Edit(title = "Дата", search = @Search(vague = true))
    )
    private Date date;

    @EruptField(
            views = @View(title = "Слайдер"),
            edit = @Edit(title = "Слайдер", type = EditType.SLIDER, search = @Search,
                    sliderType = @SliderType(max = 90, markPoints = {0, 30, 60, 90}, dots = true))
    )
    private Integer slide;

    @EruptField(
            views = @View(title = "Выбор"),
            edit = @Edit(
                    search = @Search,
                    title = "Выбор", type = EditType.CHOICE,
                    choiceType = @ChoiceType(fetchHandler = SqlChoiceFetchHandler.class,
                            fetchHandlerParams = "select id,name from e_upms_menu"
                    )
            )
    )
    private Long choice;

}

Функциональное тестирование

Эта форма хотя бы и может быть сделана с помощью Vue + Ant Design + SSM, но если внимательно рассмотреть, она имеет множество деталей, таких как:

  • Кнопки для поиска, добавления, массового удаления, импорта и экспорта Excel
  • Возможность фильтрации данных, скрытия колонок, сортировки по колонкам
  • Таблица со страничным просмотром и суммацией, возможность просмотра одного элемента
  • Различные компоненты, правила проверки

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

Однако видно, что с использованием erupt требуется всего тридцать несколько строк кода!

Полностью не требуется знание Angular / React / Vue / jQuery

И не требуется знание JavaScript / HTML / CSS

И даже не требуется знание Spring MVC / MyBatis / SQL

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

Это и есть цель создания erupt, для большинства часто используемых страниц следует использовать самый простой способ их реализации, даже без необходимости изучения различных фреймворков и инструментов, чтобы сосредоточиться на ключевых бизнес-процессах.## 🆚 Сравнение методик разработки | Comparison of Development Approaches

Традиционная разработка Spring Web Генератор кода Axelor Erupt
Доменные модели Java код Java код Определение XML Аннотация
DTO Java код Автоматическая генерация кода Не требуется Не требуется
ORM отображение XML или Java код Автоматическая генерация кода Автоматическая генерация кода Аннотация
Доступ к данным Интерфейсы + реализация Автоматическая генерация кода Автоматическая генерация кода Встроенная + по требованию реализация
Бизнес-логика Интерфейсы + реализация Автоматическая генерация кода + корректировка логики Встроенная + по требованию реализация Встроенная + по требованию @DataProxy реализация
MVC представление слоя Java код + шаблоны представлений Автоматическая генерация кода + корректировка логики Не требуется Не требуется
Фронтенд Более чем Java код Автоматическая генерация кода + корректировка логики Разработка не требуется для обычных приложений Разработка не требуется для обычных приложений

⛰ Демонстрационные скриншоты | Screenshots

Мобильная версия

🔗 Установка и использование | Installation and Usage

Скачайте последнюю версию JAR или получите через Maven.

<!--Управление пользователями и правами доступа-->
<dependency>
  <groupId>xyz.erupt</groupId>
  <artifactId>erupt-admin</artifactId>
  <version>LATEST-VERSION</version>
</dependency>
<!--Backend WEB interface-->
<dependency>
  <groupId>xyz.erupt</groupId>
  <artifactId>erupt-web</artifactId>
  <version>LATEST-VERSION</version>
</dependency>

Подробные шаги установки## 🥏 Описание модулей | Description of Modules

erupt
├── erupt-annotation -- Основные аннотации
├── erupt-core -- Основные функциональные возможности
├── erupt-data -- Пакет реализации данных
     ├── erupt-jpa -- Реализация для реляционных баз данных
     └── erupt-mongodb -- Реализация для MongoDB
├── erupt-job -- Поддержка задач планировщика, включая динамическое планирование задач, отправку электронной почты, логирование задач и т.д.
├── erupt-upms -- Управление пользователями и правами доступа
├── erupt-security -- Защита данных API
├── erupt-web -- Собранные фронтэнд страницы
├── erupt-tpl -- Поддерживает создание пользовательских страниц, графиков, модальных окон и т.д., использует движки шаблонов: FreeMarker / Thymeleaf / Native H5 / Velocity и т.д.
├── erupt-tpl-ui -- Библиотека UI для использования в erupt-tpl
    ├── ant-design
    ├── element-ui
    └── amis 
├── erupt-generator -- Генератор кода, создаёт код на основе конфигураций
└── erupt-monitor -- Мониторинг сервисов на основе erupt
erupt-pro
├── erupt-dataflow -- Реализация потока данных на основе erupt (в разработке)
├── erupt-workflow -- Реализация рабочих процессов на основе erupt (в разработке)
├── erupt-tenant -- Реализация многоучастников для облачных решений SaaS на основе erupt (разрабатывается для корпоративных пользователей)
└── erupt-bi -- Создание динамических отчетов с помощью SQL и JavaScript, поддерживает: несколько источников данных, пользовательские функции, разработку графиков и т.д. (для корпоративных пользователей)
erupt-site -- Официальный сайт проекта Erupt https://github.com/erupts/erupt-site
erupt-web -- Исходный код фронтэнда проекта Erupt https://github.com/erupts/erupt-web

📟 Технологический стек | Technical Stack

Back-end: Java 8, Spring Boot, ScriptEngine, SpEL, Annotation, JDBC, Reflect, JPA, Hibernate, Quartz, Gson, Lombok, POI...

Front-end: JavaScript, H5, MVVM, Router, Angular CLI, Angular, NG-ZORRO, NG-ALAIN, G2Plot, RxJS, TypeScript, Less...

⚙️ Архитектурная диаграмма | Architecture Diagram

Архитектурная диаграмма

🌕 Онлайн демонстрация | Online Demo

Просмотреть можно здесь: https://www.erupt.xyz/demo

Логин/пароль: guest / guest

Поддерживается основными современными браузерами, а также Internet Explorer 11+, работает в средах на основе Web стандартов, таких как Electron

IE / Edge
Edge / IE
Firefox
Firefox
Chrome
Chrome
Safari
Safari
Opera
Opera
Electron
Electron
Edge 16 / IE 11+ 522 57 11 44 Chromium 57

🔭 Рекомендации по открытым проектам | Recommendations for Open Source Projects

[zeta-api]: Быстрое создание API-интерфейсов и документации с использованием XML-конфигураций, безопасно и эффективно, необходимый инструмент для быстрой разработки [Jpom]: Лёгкий и независимый онлайн-билдер, автоматизация развертывания, повседневное обслуживание и мониторинг проектов.

🧩 Присоединиться к обсуждению

QQ общение: 836044286 🔥

WeChat общение: Из-за того что QR-коды WeChat действуют всего неделю, следуйте за официальным WeChat-каналом проекта Erupt (EruptGuide), чтобы получить актуальные QR-коды группы.

⛽️ Донат | Donation

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

Перейти к донату

⭐️ Проект Erupt использует лицензию Apache License 2.0, исходный код полностью открыт, нет коммерческих ограничений. Если вам понравился проект, пожалуйста, сделайте star для автора в знак поддержки 👇


GitHub репозиторий   |   GitCode репозиторий   |   Gitee репозиторий   |   Официальный сайт   |   Онлайн демо   |   📖 Инструкции по использованию


Автор: YuePeng / erupts@126.com


Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/erupt-erupt.git
git@api.gitlife.ru:oschina-mirror/erupt-erupt.git
oschina-mirror
erupt-erupt
erupt-erupt
master