среда, 20 ноября 2013 г.

Про Spring

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

Два кита, на которых зиждется Spring это Spring DI и Spring AOP.

По поводу Spring DI можно отметить следующий момент. Благодаря DI объекты получают свои зависимости во время создания от некоторой третьей стороны, координирующей работу каждого объекта в системе. Объекты не создают и не получают свои зависимости самостоятельно – зависимости внедряются в объекты.

Основное преимущество DI – слабая связанность. Если объект взаимодействует со своими зависимостями только через их интерфейсы (ничего не зная о конкретных реализациях или особенностях их создания), зависимости можно будет замещать любыми другими реализациями, без необходимости учитывать эти различия в самом объекте.

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

Фреймворк Spring поддерживает множество способов связывания компонентов, но наиболее общим из них является способ на основе XML.

В приложении, созданном на основе Spring, контекст приложения загружает определения компонентов и связывает их вместе. За создание объектов, составляющих приложение, и их связывание полностью отвечает контекст приложения.

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

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

Прежде чем использовать волшебство Spring по превращению объекта в аспект, его сначала необходимо объявить компонентом Spring с помощью элемента <bean>. Дело в том, что с аспектами Spring можно выполнять любые операции, которые можно выполнять с другими компонентами Spring, такие как внедрение их в виде зависимостей.

Фреймворк Spring стремится помочь в устранении шаблонного кода путем заключения его в шаблоны. Класс JdbcTemplate из фреймворка Spring позволяет выполнять операции с базой данных без лишних церемоний, требуемых традиционным JDBC.

Фреймворк Spring имеет не один контейнер. В его состав входят несколько реализаций контейнера, которые подразделяются на два разных типа.  Фабрики компонентов  (bean factories) (определяются интерфейсом  org.springframework.beans.factory.BeanFactory ) – самые простые из контейнеров, обеспечивающие базовую поддержку DI.  Контекст приложений  (application contexts) (определяется интерфейсом  org.springframework.context.ApplicationContext ) основан на понятии фабрик компонентов и реализует прикладные службы фреймворка, такие как возможность приема текстовых сообщений из файлов свойств и возможность подписывать другие программные компоненты на события, возникающие в приложении.

Комментариев нет:

Отправить комментарий