Что такое "ткачество"?

Я видел этот термин, когда читал о том, как работает Spring, и я только что прочитал статью о производительности реализации JPA, и у нее есть следующая статистика:

EclipseLink                                                           3215 ms
(Run-time weaver - Spring ReflectiveLoadTimeWeaver weaver  )
EclipseLink (Build-time weaving)                                      3571 ms
EclipseLink (No weaving)                                              3996 ms

Итак, может кто-нибудь объяснить на простом английском языке, что такое ткачество?

Спасибо!

Ответы

Ответ 1

Из здесь:

В Spring AOP позволяет модулировать и отделять ведение журнала, транзакционные сервисы и декларативно применять их к компонентам. Следовательно, программист может сосредоточиться на конкретных проблемах. Аспекты подключаются к объектам в XML файле Spring так же, как JavaBean. Этот процесс известен как "ткачество".

Ответ 2

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

  • Вне JVM во время компиляции во время упаковки
  • Внутри JVM при загрузке класса. после загрузки класса.

Spring Framework использует это для функциональности AOP. Eclipselink использует ткачество для ленивой загрузки или отслеживания изменений.

Ответ 3

Объектно-ориентированные программные системы, которые разработаны с использованием аспектно-ориентированных методов программирования состоят из классов и аспектов. Классы реализуют основная функциональность приложения, например, управление запасами или расчет страховые ставки. Аспекты, с другой стороны, захватывают технические проблемы, такие как упорство, связи или синхронизации процесса.

Существует два способа, которыми классы и аспекты могут быть сотканными: статическими или динамическими.

Статическое ткачество означает изменение исходного кода класса путем вставки аспект-спецификаций в точки соединения. В других слова: аспектный код встроен в классы. результатом является сильно оптимизированный сплетенный код, исполнение которого скорость сравнима с той, что написана в коде без использования аспектов.

Ответ 5

Ткачество - это процесс связывания аспекта с другими типами приложений или объектами для создания рекомендуемого объекта. Ткачество может выполняться во время компиляции, времени загрузки или времени выполнения. Spring AOP выполняет плетение во время выполнения.