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

OSCHINA-MIRROR/fand-fand

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

Фанд (Fand) — базовая платформа

  1. Платформа основана на Spring, Spring JDBC и Spring MVC и представляет собой упрощённую обёртку.
  2. Уровень сохраняемости данных основан на Spring JDBC. Он предоставляет поддержку автоматического получения динамического SQL и сохранения его в файлы для удобства последующего обслуживания. Также он автоматически маршрутизирует данные в различные источники данных в соответствии с бизнес-правилами. Поддерживает разделение чтения и записи, вертикальное и горизонтальное разделение, а также использование различных типов баз данных.
  3. Платформа включает в себя базовые компоненты, необходимые для разработки корпоративных приложений: управление данными словаря, многоязычное управление, управление правами доступа, управление кэшем, управление процессами, управление пользователями, управление отделами, управление шаблонами и т. д.
  4. Постоянное улучшение безопасности: запрет межсайтовых форм, защита от SQL-инъекций, защита от инъекций CSS/JS через комментарии, шифрование основных бизнес-данных.
  5. Постоянное совершенствование функциональности: поддержка единого или нескольких доменных имён для единого входа, импорт и экспорт Excel, поиск зашифрованных данных, поддержка групп (загрузка файлов на файловые серверы, FTP-серверы или запись IP-адресов серверов для последующего скачивания файлов), мониторинг и повторные попытки выполнения задач по расписанию, соблюдение стандартов AMD для решения проблем с зависимостями JS на стороне клиента, интеграция с рабочим процессом Activiti, поддержка онлайн-редактирования диаграмм рабочих процессов и разработка конфигураций для любых рабочих процессов.
  6. Постоянное повышение производительности: поддержка групп (избегание одновременного выполнения одной и той же задачи по расписанию на нескольких сервисах, вызов интерфейсов коротких сообщений и других внешних интерфейсов), анализ шаблонов и вторичное кэширование, использование базы данных памяти для сложных запросов прав доступа, использование Alipay seajs для загрузки JS и CSS по требованию.
  7. Для демонстрации использования этих базовых компонентов в разделе examples разрабатываются следующие системы на основе этой базовой платформы: система автоматизации офиса (OA), система управления контентом (CMS), система управления человеческими ресурсами (HRM) и другие.
  8. Полная документация: последующая поддержка документации на основе PowerDesigner, включая требования, концепции, физическую модель, процессы и другую документацию.
  9. Поддержка генерации кода: генерация PO, DTO, VO, DAO, сервисов, валидаторов, контроллеров и другого кода. Разработчикам нужно только написать конкретные бизнес-правила.

Примечание: исходный код использует Lombok для упрощения кода. Перед импортом исходного кода проекта необходимо убедиться, что Lombok настроен правильно. Официальный сайт Lombok: http://projectlombok.org/.

Последний исходный код находится в ветке dev-yaoHT. При совместной разработке несколько веток dev-* объединяются в ветку test для централизованного тестирования, и после успешного тестирования они объединяются в основную ветку master. Исторические версии находятся в тегах.

Требования к документации: https://git.oschina.net/fand/fand/blob/master/docs/fand.rqm

Концептуальная модель данных: https://git.oschina.net/fand/fand/blob/master/docs/fand.cdm

Физическая модель данных: https://git.oschina.net/fand/fand/blob/master/docs/fand.pdm

Скрипт создания таблиц Oracle: http://git.oschina.net/fand/fand/tree/demo/fand-web/src/main/resources/sql/Oracle/create.sql

Уровень сохраняемости данных: https://git.oschina.net/fand/fand/tree/master/modules/fand-persistent

Базовая функциональность: https://git.oschina.net/fand/fand/tree/master/apps/fand-platform-webapp

Инициализация системных данных (данные словаря, навигационное меню, глобальные переменные и т.д.): https://git.oschina.net/fand/fand/blob/master/apps/fand-platform-webapp/src/main/resources/common/applicationContext-InitData.xml

Основные особенности:

  1. Динамический SQL уровня сохраняемости основан на выражениях Freemarker, которые более мощные, чем выражения OGNL в MyBatis. На уровне SQL можно использовать пользовательские теги или напрямую вызывать статические методы. Можно контролировать права доступа к данным и отображать содержимое полей в SQL. Можно повторно использовать фрагменты SQL, кэшировать данные и выполнять другие операции (Freemarker уже поддерживает эти функции, нет необходимости в дополнительной обёртке).

  2. Файлы SQL уровня сохраняемости хранятся как шаблоны Freemarker. Этот подход удобен для совместного использования с различными типами баз данных. Во время настройки в среде Spring можно указать несколько путей для templateLoaderPaths, например, classpath:/sql/Oracle и classpath:/sql/MySQL. Когда уровень сохраняемости вызывает SQL через относительный путь, сначала выполняется поиск в каталоге /sql/Oracle, а если файл не найден, то поиск продолжается в каталоге /sql/MySQL.

  3. Конфигурация маршрутизации источников данных позволяет автоматически направлять вызовы SQL к различным источникам данных на основе пути к файлу SQL. Существует несколько способов настройки правил маршрутизации, включая чтение/запись разделения, один главный и несколько ведомых, несколько главных и несколько ведомых и другие модели кластеризации баз данных. Увеличение объёма работы уровня сохраняемости не требуется, если SQL не требует передачи параметров, достаточно указать относительный путь к SQL.

  4. Возможность динамически переключать источники данных при наличии правил конфигурации. Это может быть использовано для планового переключения между источниками данных в сочетании с задачами по расписанию; для аварийного переключения между источниками данных в случае сбоя сервера баз данных; для регионального переключения в зависимости от контекста пользователя (например, после входа пользователя в систему, переключение на соответствующий источник данных для этого пользователя).

Примеры конфигурации с несколькими источниками данных: https://git.oschina.net/fand/fand/blob/master/apps/fand-platform-webapp/src/main/resources/applicationContext-DataSource.xml

Пример конфигурации маршрутизации: https://git.oschina.net/fand/fand/blob/master/apps/fand-platform-webapp/src/main/resources/applicationContext-Router.xml

Использование уровня сохраняемости: https://git.oschina.net/fand/fand/blob/master/apps/fand-platform-configuration/src/main/java/com/fand/platform/configuration/dao/DictionaryJdbcDao.java

Другие примеры использования уровня сохраняемости: https://git.oschina.net/fand/fand/tree/master/apps/fand-platform-webapp/src/main/resources/sql/oracle/configuration/dictionary

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

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

Введение

Базовая платформа для разработки. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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