Фанд (Fand) — базовая платформа
Примечание: исходный код использует 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
Основные особенности:
Динамический SQL уровня сохраняемости основан на выражениях Freemarker, которые более мощные, чем выражения OGNL в MyBatis. На уровне SQL можно использовать пользовательские теги или напрямую вызывать статические методы. Можно контролировать права доступа к данным и отображать содержимое полей в SQL. Можно повторно использовать фрагменты SQL, кэшировать данные и выполнять другие операции (Freemarker уже поддерживает эти функции, нет необходимости в дополнительной обёртке).
Файлы SQL уровня сохраняемости хранятся как шаблоны Freemarker. Этот подход удобен для совместного использования с различными типами баз данных. Во время настройки в среде Spring можно указать несколько путей для templateLoaderPaths, например, classpath:/sql/Oracle и classpath:/sql/MySQL. Когда уровень сохраняемости вызывает SQL через относительный путь, сначала выполняется поиск в каталоге /sql/Oracle, а если файл не найден, то поиск продолжается в каталоге /sql/MySQL.
Конфигурация маршрутизации источников данных позволяет автоматически направлять вызовы SQL к различным источникам данных на основе пути к файлу SQL. Существует несколько способов настройки правил маршрутизации, включая чтение/запись разделения, один главный и несколько ведомых, несколько главных и несколько ведомых и другие модели кластеризации баз данных. Увеличение объёма работы уровня сохраняемости не требуется, если SQL не требует передачи параметров, достаточно указать относительный путь к SQL.
Возможность динамически переключать источники данных при наличии правил конфигурации. Это может быть использовано для планового переключения между источниками данных в сочетании с задачами по расписанию; для аварийного переключения между источниками данных в случае сбоя сервера баз данных; для регионального переключения в зависимости от контекста пользователя (например, после входа пользователя в систему, переключение на соответствующий источник данных для этого пользователя).
Примеры конфигурации с несколькими источниками данных: 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 )