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

OSCHINA-MIRROR/wkgcass-Pure.IoC

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Update.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 27.02.2025 16:03 225802b

Обновление содержимого Update

0.3.1 --> 0.3.2

Ошибки Bug

По умолчанию DefaultParamHandler не мог правильно обрабатывать привязанные типы логикой, что было исправлено.

TypeWireHandler повторно выполнял операцию внедрения при работе с объектами, обработанными TypeDefaultHandler (TypeDefaultHandler создает новый цепочку обработчиков HandlerChain, в которой также находится TypeWireHandler), что было исправлено.

Автоматическая регистрация могла потерпеть неудачу при вызове AutoWire.get(...), что было исправлено.

Изменения Modification

Теперь методы AOPController.weave, TypeAnnotationHandler, ParamAnnotationHandler, IOCController.get получили дополнительный параметр, представляющий "тип, который ожидался изначально".

Метод AOPController.weave теперь принимает RFunc0 вместо объекта, например AOPController.weave(() -> obj, obj.getClass()).

Изменены некоторые документы.

Обновление содержимого Update

0.2.2 --> 0.3.1

Изменения Modification

Сессия Session переименована в область действия Scope (включая аннотации @Session и SessionAware, которые были переименованы в @ScopeAttr и ScopeAware соответственно). Теперь все объекты, зарегистрированные в IOCController, должны быть зарегистрированы в IOCController.rootScope, за исключением обработчиков.

Удалена аннотация SetterAnnotationHandler; все вызовы сеттеров теперь берутся под контроль ParamAnnotationHandler.

Аннотация Use была изменена на @Use(value: String, cls: Class). Либо значение либо класс могут использоваться, но если они оба существуют, то используется значение.

Аннотация Default была изменена на @Default(value: Class). Значение представляет собой тип, который требуется проинициализировать.

Каждая аннотация теперь имеет метку @Inherited.

Интерфейс ScopeAware перемещён в пакет ioc и теперь использует setter для внедрения области действия. В реальности, любой тип, который является областью действия, может использовать этот подход для внедрения области действия.

Внедрение будет происходить только тогда, когда есть аннотация @Wire. Если @Wire указана на типе, то будут внедрены все сеттеры и поля с @Wire. В других случаях будут внедрены только указанные сеттеры и поля.

Новые возможности New Features

Теперь поддерживаются прямые внедрения в поля, просто добавьте аннотацию @Wire к полю.

Теперь можно не добавлять @Wire к классу, а добавить его к полям или сеттерам, или добавить @Invoke к методам. Это позволит выбрать поля или сеттеры для внедрения, или выбрать методы для выполнения.

Аннотация @ScopeAttr может иметь параметр thread=true, что позволяет добавить значение в Scope.currentThreadScope().

Обновление содержимого Update

0.2.1 --> 0.2.2

Ошибки Bug

Аннотация @Force ранее не могла корректно обрабатывать небазовые типы. Это было исправлено.

В AOPController был найден баг, который был исправлен.

Типы и параметры ранее не могли корректно обрабатывать автоматическое упаковывание типов. Это было исправлено.

Изменения Modification

Несколько методов в IOCController помечены как @Deprecated:

  • registerVariable(String, Field)
  • registerVariable(String, FieldSupport)
  • registerVariable(String, Method)
  • registerVariable(String, MethodSupport)

Используйте registerVariable(String, RFunc1) вместо них.

По умолчанию поведение Weavers, которые не переопределяют метод doException, было изменено на выбрасывание исключения. Weaver и LoggedWeaver считаются специализированными и не затрагиваются этим изменением.

Новые возможности New Features

Теперь вы можете регистрировать объекты типа Map<Object, Object> (родительский тип для Properties) в IOCController и использовать аннотацию @Force для указания свойства properties и значения value для конкретной конфигурации.

Пример:

properties

address = 127.0.0.1
port = 23333

Java

Properties config = new Properties();
config.load(Class.forName("X").getResourceAsStream("/config.properties"));
IOCController.registerProperties("config", config);

@Force(properties = "config", value = "address")
public void setAddress(String address) {...}

@Force(properties = "config", value = "port")
public void setPort(int port) {...}

Если ни один обработчик не был зарегестрирован до начала внедрения, то будет автоматически вызван метод autoRegister и выполнен метод closeRegistering.

Обновление содержимого Update

0.1.3 --> 0.2.1

Ошибки Bug

Классы, аннотированные @Singleton, ранее не могли использовать аннотацию @Wire. Это было исправлено.

Изменения Modification

Добавлена новая сущность Session, которая проходит через весь процесс одного внедрения AutoWire.wire(o). Подробнее см. документацию.

Weaver был переименован в LoggedWeaver, и теперь предоставляется интерфейс Weaver для выполнения операций внедрения.

Новые возможности New Features

Для всех Weavers, реализующих интерфейс TargetAware, метод будет вызван после получения экземпляра мывера с использованием прокси-объекта в качестве аргумента.

Для всех Weavers, реализующих интерфейс SessionAware, метод будет вызван после получения экземпляра мывера с использованием текущего сеанса IoC в качестве аргумента.

Адаптация Adjust

Для объектов без интерфейсов теперь автоматически используется cglib, нет необходимости явно устанавливать useCglib=true.

Некоторые старые строки объединения в log4j были заменены на шаблоны слеш-слеш-слеш {} в slf4j.

Некоторые ошибки в документах и журналах были исправлены.

Обновление содержимого Update

0.1.2 --> 0.1.3

Адаптация Adjust

Предоставлена поддержка Maven.

Logger теперь использует slf4j.

Используется новая версия Style функционального набора инструментов.

Переменные теперь управляются с помощью Supplier. Также поддерживаются Method и Field.

Обновление содержимого Update

0.1.1 --> 0.1.2

Новые возможности New Features

AOP теперь поддерживает Cglib. Добавьте следующее к аннотации AOP:

useCglib = true

Обновление содержимого Update

0.0.2 --> 0.1.1

Ошибки Bug

Аннотация Extend имела программную ошибку во время разработки, что делало её недействительной. Эта ошибка была исправлена.

Адаптация Adjust

При использовании Style инструментария ранее использовалось наследование, теперь используется импорт статических методов.

Новые возможности New Features

AOP Теперь вы можете использовать Pure.IoC для работы с AOP.

Добавьте аннотацию @AOP({Class, ...}) к вашему типу с интерфейсом, затем при внедрении Pure.IoC или при прямом вызове AOPController.weave(экземпляр типа) будет создан и получен прокси-объект.

Смотрите документацию для получения более подробной информации.

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

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

1
https://api.gitlife.ru/oschina-mirror/wkgcass-Pure.IoC.git
git@api.gitlife.ru:oschina-mirror/wkgcass-Pure.IoC.git
oschina-mirror
wkgcass-Pure.IoC
wkgcass-Pure.IoC
master