Тут будут некоторые заметки про Spring. Чтобы, когда потребуется, легко освежать у себя в голове.
Два кита, на которых зиждется Spring это Spring DI и Spring AOP.
По поводу Spring DI можно отметить следующий момент. Благодаря DI объекты получают свои зависимости во время создания от некоторой третьей стороны, координирующей работу каждого объекта в системе. Объекты не создают и не получают свои зависимости самостоятельно – зависимости внедряются в объекты.
Основное преимущество DI – слабая связанность. Если объект взаимодействует со своими зависимостями только через их интерфейсы (ничего не зная о конкретных реализациях или особенностях их создания), зависимости можно будет замещать любыми другими реализациями, без необходимости учитывать эти различия в самом объекте.
Однако для того, чтобы определять какой именно объект был внедрен используется связывание.
Связывание - это процесс создания связей между прикладными компонентами.
Фреймворк Spring поддерживает множество способов связывания компонентов, но наиболее общим из них является способ на основе XML.
В приложении, созданном на основе Spring, контекст приложения загружает определения компонентов и связывает их вместе. За создание объектов, составляющих приложение, и их связывание полностью отвечает контекст приложения.
Аспектно-ориентированное программирование позволяет оформлять функциональность, используемую в приложении, в виде многократно используемых компонентов.
Системные службы, такие как журналирование, управление транзакциями и безопасность, часто находят свое отражение в компонентах, основная задача которых заключается в чем-то другом. Такие системные службы обычно называют сквозными задачами, потому что в их работу может вовлекаться несколько компонентов системы.
AOP делает возможным отделение этих служб и декларативное их применение к необходимым компонентам.
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 ) основан на понятии фабрик компонентов и реализует прикладные службы фреймворка, такие как возможность приема текстовых сообщений из файлов свойств и возможность подписывать другие программные компоненты на события, возникающие в приложении.
Комментариев нет:
Отправить комментарий