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

OSCHINA-MIRROR/huangjuncong-mumux-framework

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

Mumux-framework

Введение

Научитесь легко создавать базовую версию Spring-фреймворка. В дальнейшем мы продолжим улучшать этот фреймворк, но сейчас он находится на начальной стадии разработки.

Вы узнаете:

  • Что такое внедрение зависимостей и инверсия управления.
  • Для чего нужен IoC.
  • Как реализован IoC в Spring.
  • Как разработать простой IoC-фреймворк по принципам Spring.

Основные шаги Spring IoC:

  1. Инициализация контейнера IoC.
  2. Чтение конфигурационного файла.
  3. Преобразование конфигурационного файла в структуру данных, распознаваемую контейнером (в Spring эта структура называется BeanDefinition).
  4. Последовательное создание экземпляров соответствующих объектов с использованием структуры данных.
  5. Внедрение зависимостей между объектами.

Основываясь на реализации IoC Spring, удалите всю логику, не связанную с основным принципом. Создайте максимально упрощённый фреймворк для внедрения зависимостей.
В этом проекте можно использовать JSON или XML в качестве конфигурационных файлов — выбор за вами. Используйте Maven для управления зависимостями jar-пакетов. Все объекты в этом фреймворке являются одиночными и не поддерживают различные области действия Spring. Реализация фреймворка использует cglib и отражение Java. Позже будут добавлены аннотации конфигурации, MVC и другие функции.

Вы также узнаете:

  • Что такое AOP?
  • Зачем использовать AOP?
  • Как Spring реализует AOP.
  • Как создать собственный AOP-фреймворк на основе идей Spring.

Основные этапы реализации Spring AOP:

  1. Инициализировать контейнер AOP.
  2. Прочитать конфигурационный файл.
  3. Конвертировать конфигурационный файл в структуру данных, которую может распознать AOP — Advisor. Здесь мы подробнее рассмотрим эту структуру. Advisor содержит две важные структуры данных: Advice и Pointcut. Advice описывает поведение аспекта, а Pointcut — местоположение аспекта. Комбинация этих двух элементов позволяет полностью описать аспект: «где и что делать». Таким образом, Advisor содержит информацию о том, «что и где делать», и может полностью описать аспект.
  4. Spring преобразует Advisor в структуру данных AdvicedSupport, которую он может распознать. Spring динамически внедряет эти перехватчики методов в соответствующие методы.
  5. Создание динамического прокси.
  6. Предоставление вызовов. При использовании вызовы направляются к методам прокси. Это означает, что методы уже содержат расширенные методы.

Архитектура программного обеспечения

Описание архитектуры программного обеспечения mumux-framwork включает три основных модуля:

  • AOP-модуль: аспекты.
  • IOC-модуль: инверсия контроля.
  • Mergerequest-модуль: объединение запросов при высокой параллельности.
  • CodeGenerator-модуль: генератор кода.

Инструкция по использованию

AOP и IOC имеют два способа настройки: вы можете выбрать конфигурацию JSON или конфигурацию XML.

Документация по использованию доступна на wiki: Использование документации wiki.

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

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

Введение

Это ручной IOC, AOP фреймворк, фреймворк для объединения запросов. Внутри всё подробно прокомментировано, просто и понятно. Надеюсь, это поможет всем в изучении. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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