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

OSCHINA-MIRROR/coodyer-Coody-Framework

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

Coody Framework

Основные сведения:

Один из разработчиков, активный участник различных форумов по сетевой безопасности, позже перешёл в область разработки. Начал работать в CMGE в марте 2014 года.

После публикации проекта в 2018 году, обновления выпускались нерегулярно. За это время JDK обновился несколько раз, но официальная версия Coody Framework так и не была выпущена.

Возможно, автор проекта когда-нибудь вернётся к нему и доработает.

В настоящее время проект сталкивается со следующими проблемами:

  • После Java 9 использование unsafe стало невозможным, что может привести к снижению производительности при создании объектов.
  • После Java 9 часть функций рефлексии была ограничена, требуется адаптация к этим изменениям.
  • Необходимо обеспечить совместимость с javax и различными шаблонами движков и приложениями серверов.
  • Требуется исправить проблемы совместимости для плагина Cson JSON сериализации и десериализации.

Введение:

Coody Framework — это Ioc-фреймворк, разработанный автором в свободное время. На создание ушло более четырёх месяцев.

Назначение и преимущества:

Фреймворк Coody включает следующие модули:

  • coody-core: ядро фреймворка, включая реализацию IoC и AOP, а также связанные инструменты и суперклассы.
  • coody-web: реализация веб-MVC, обеспечивающая функциональность MVC.
  • coody-cache: реализация кэширования, предоставляющая базовое кэширование, кэширование аспектов и поддержку для связанных технологий.
  • coody-jdbc: реализация ORM, основанная на базовых операциях MySQL, предоставляя различные упрощённые операции и расширяя аспекты транзакций.
  • coody-task: реализация задач по расписанию, основанная на cron, предоставляющая поддержку аннотаций для задач по расписанию.
  • coody-rcc: реализация распределённой системы, включающая регистрацию центра, сериализацию, коммуникационные протоколы и другие интерфейсы. Также предоставляет реализацию создания подклассов через байт-код (распределённые функции ещё не завершены).
  • coody-elock: реализация распределённых блокировок, использующая Redis для подписки и обеспечивающая высокую производительность распределённых блокировок.
  • coody-mail: инструмент отправки почты на основе TCP.
  • coody-minicat: HTTP-сервер на основе TCP.
  • coody-cson: плагин для сериализации и десериализации JSON.
  • coody-esource: упрощённый пул соединений с базой данных.
  • coody-logged: облегчённый плагин для ведения журнала.

История обновлений:

  • 24 февраля 2018 года: начало проекта, предоставление IOC и AOP фреймворков.
  • 25 февраля 2018 года: предоставление веб-MVC фреймворка.
  • 26 февраля 2018 года: предоставление ORM фреймворка.
  • 8 марта 2018 года: расширение поддержки IOC для интерфейсов.
  • 10 марта 2018 года: внедрение плагина CronTask и аннотации CronTask.
  • 21 марта 2018 года: расширение AOP, предоставление классов, методов и множественных правил аннотирования.
  • 22 апреля 2018 года: возможность внедрения request и response в контроллеры.
  • 23 апреля 2018 года: расширение MVC, предоставление адаптеров параметров и пользовательских входов для адаптации параметров.
  • 2 июня 2018 года: расширение распределённой системы и разработка решений для неё, предоставление интерфейса для создания классов через ASM.
  • 5 июня 2018 года: подготовка к разделению проекта для публикации в центральном репозитории Maven.
  • 28 июня 2018 года: публикация альфа-версии в центральном репозитории Maven (можно найти через поиск «Coody» в Nexus).
  • 31 декабря 2018 года: выпуск Elock для распределённых блокировок (версия alpha-1.2.4).
  • 26 ноября 2019 года: выпуск Mail для отправки почты (версия alpha-1.2.5).
  • 27 декабря 2019 года: выпуск Minicat для реализации HTTP-сервера (версия alpha-1.2.6).
  • 4 января 2020 года: выпуск Cson для сериализации и десериализации JSON (версия alpha-1.2.7).
  • 14 января 2020 года: удаление зависимости от cglib, переход на чистый ASM для динамического проксирования.
  • 3 октября 2022 года: написание и тестирование RCC для распределённого модуля.
  • 9 октября 2022 года: разработка и тестирование logged плагина для ведения журналов, удаление log4j.

Практический пример использования Coody Framework + Minicat: https://gitee.com/coodyer/reduce/

Ссылки на зависимости:

        <dependency>
            <groupId>org.coody.framework</groupId>
            <artifactId>coody-core</artifactId>
            <version>alpha-1.8.4</version>
        </dependency>

        <dependency>
            <groupId>org.coody.framework</groupId>
            <artifactId>coody-jdbc</artifactId>
            <version>alpha-1.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.coody.framework</groupId>
            <artifactId>coody-cache</artifactId>
            <version>alpha-1.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.coody.framework</groupId>
            <artifactId>coody-task</artifactId>
            <version>alpha-1.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.coody.framework</groupId>
            <artifactId>coody-web</artifactId>
            <version>alpha-1.8.4</version>
        </dependency>
      <dependency>
            <groupId>org.coody.framework</groupId>
            <artifactId>coody-elock</artifactId>
            <version>alpha-1.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.coody.framework</groupId>
            <artifactId>coody-minicat</artifactId>
            <version>alpha-1.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.coody.framework</groupId>
            <artifactId>coody-mail</artifactId>
            <version>alpha-1.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.coody.framework</groupId>
            <artifactId>coody-cson</artifactId>
            <version>alpha-1.8.4</version>
        </dependency>
``` **Инъекция бина в поле, нужно только отметить @AutoBuild на этом поле:**

#### (3) Конфигурация web.xml:
configPath config org.coody.framework.web.listen.CoodyServletListen DispatServlet org.coody.framework.web.DispatServlet
<!-- 静态资源目录 -->
<init-param>
    <param-name>viewPath</param-name>
    <param-value>/</param-value>
</init-param>
DispatServlet *.do ```

Конфигурация одного бина:

Конфигурация dataConfig (coody.bean.{имя бина}.field.${имя поля})

coody.bean.hikariDataConfig.class=com.zaxxer.hikari.HikariConfig

coody.bean.hikariDataConfig.field.driverClassName=com.mysql.jdbc.Driver

coody.bean.hikariDataConfig.field.jdbcUrl=jdbc:mysql://127.0.0.1/czone?useUnicode=true&characterEncoding=utf-8

coody.bean.hikariDataConfig.field.username=root

coody.bean.hikariDataConfig.field.password=root

coody.bean.hikariDataConfig.field.maxPoolSize=64

coody.bean.hikariDataConfig.field.minIdle=8

Конфигурация DataSource (coody.bean.{имя бина}.parament.${параметр}), когда значение равно ${выражение}, то есть ${имя бина}

coody.bean.hikariDataSource.class=com.zaxxer.hikari.HikariDataSource

coody.bean.hikariDataSource.parament.configuration=${hikariDataConfig}

Примечание: В выражении coody.bean.{имя бина}.способ.${параметр} способ field означает установку значения параметра для инициализации бина, значение field совпадает с именем поля. Способ parament означает использование конструктора для инициализации бина. Значение parament совпадает с параметром.

Как показано на рисунке:

(5) Использование MVC:

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

(6) Использование таймера:

(7) Использование аспекта:

(8) Использование транзакции:

(9) Использование кэша:

Использование кэша см. в соответствующей документации.

4. Документация по каждому плагину:

Coody Web (MVC документация): http://gitee.com/coodyer/Coody-Framework/tree/original/coody-web

Coody Cache (документация по кешу): http://gitee.com/coodyer/Coody-Framework/tree/original/coody-cache

Coody Jdbc (ORM документация): http://gitee.com/coodyer/Coody-Framework/tree/original/coody-jdbc

Coody Task (документация CRON по таймеру): http://gitee.com/coodyer/Coody-Framework/tree/original/coody-task

Coody Elock (документация распределённой блокировки): http://gitee.com/coodyer/Coody-Framework/tree/original/coody-elock

Coody Minicat (HTTP сервер документация): https://gitee.com/coodyer/Coody-Framework/tree/original/coody-minicat

Coody Mail (TCP почта плагин документация): https://gitee.com/coodyer/Coody-Framework/tree/original/coody-mail

Coody ESource (пул соединений с базой данных документация): https://gitee.com/coodyer/Coody-Framework/tree/original/coody-esource

Coody Cson (JSON сериализация и десериализация плагин документация): https://gitee.com/coodyer/Coody-Framework/tree/original/coody-cson

Coody RCC (распределённая структура): https://gitee.com/coodyer/Coody-Framework/tree/original/coody-rcc

Coody Logged (журнал плагин): https://gitee.com/coodyer/Coody-Framework/tree/original/coody-logged

5. Авторские права:

В исходном коде проекта есть тестовые демо, включая MVC, аспекты и другие примеры.

Автор: Coody Авторские права: ©2014-2025 Test404 All right reserved. Все права защищены.

Обратная связь: 644556636@qq.com  
Коммуникационная группа: 218481849

Система блогов на основе Coody Framework: https://gitee.com/coodyer/czone  (в разработке)

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

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

Введение

Занимаемся разработкой отечественного IOC-фреймворка, упор на лёгкость, простоту и быстроту работы. Уже зарегистрирован в центральном репозитории Maven. Развернуть Свернуть
Java
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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