
|
|
22-01-2008 Теперь, прежде чем перейти к экспериментам с фреймворком, нам осталось разобраться, собственно, каким образом Spring связывает компоненты между собой.
Конспект четветый : Application context В предыдущих лекциях мы обсудили основопологающие принципы, заложенные в основу Spring Framework и определили каким образом фреймворк позоволяет поддерживать слабую связь между компонентами приложения. И теперь, прежде чем перейти к экспериментам с фреймворком, нам осталось разобраться, собственно, каким образом Spring связывает компоненты между собой. Для начала, я предлагаю разобраться с термином, достаточно часто фигурирующем везде, где упоминается Spring - "контекст" (context). Контекст – это среда, в которой существует объект. Давайте разберемся, что в нашем случае является средой, а что объектом. Объект - это разрабатываемая Вами компонента (bean), а среда – все остальные компоненты (beans), необходимые для жизненного цикла вашей компоненты. Например, контроллер, позволяющий отправить клиенту сообщение по почте, в данном случае является объектом, а сам мэйлер, логер, etc. – являются средой окружения. Обратите внимание на то, что в реальном приложении каждая компонента (bean) может выступать, как в роли объекта, так и в роли среды. Таким образом, описание набора компанент (beans) и взаимосвязей между ними и является контекстом приложения (application context). В конечном счете, для разработчика, использующего Spring Framework, Application Context представляет собой набор xml – файлов и аннотаций, описывающий компоненты (beans) и взаимосвязи между ними.
Если читатель помнит, во втором конспекте лекций, я создавал класс Framework, который жестко кодировал создание компонент и связей между ними. Сейчас пришло время, перейти к декларативному оформлению того же контекста. Итак, давайте рассмотрим пример конфигурационного файла для компонент из второй лекции: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <bean id="registerFormController" class="com.personality.examples.spring.ioc.RegisterFormControllerReadyForIoC"> <property name="mailService" ref="mailService" /> </bean> <bean id="mailService" class="com.personality.examples.spring.ioc.SmtpMailService" /> </beans>
Обратите внимание на то, что данный конфигурационный файл создает экземпляры двух бинов: registerFormController и mailService и устанавливает взаимосвязь между ними с помощью атрибута ref. Т.о. Spring Framework, обработав соответствующий конфигурационный файл, создаст экемпляр класса SmtpMailService, после чего создаст экземпляр RegisterFormControllerReadyForIoC и только затем установит между ними взаимосвязь (injection) соответвующего мейлера и контроллера. При этом используется нотация JavaBean (соответствие полей класса и методов setXXX(), getXXX()). Графически эта конфигурация будет выглядеть следующим образом: 
Указанный выше способ конфигурирования приложения в Spring Framework не единственный, но, для того чтобы не усложнять жизнь читателя, мы пока остановимся на нем.
|
Комментарии к статье "Spring Framework - первые шаги (Конспект четвертый)" (1) |
RedMac:
13-02-2008 17-57
Может кто знает: где это можно рисовать и сразу конвертить в xml? ЧТоб это всё ручками не писать? |
|
|
| Веб Приложение на ОСГИ 04-08-2008 Технология OSGi позволяет создавать модульные приложения, которое легко может конфигурироваться путем добавления,удаления или обновления модулей. В данном примеры мы рассмотрим создания простейшего веб-приложения как часть (модуль) другого приложения, основанного на OSGi | | Spring Framework - первые шаги (Конспект десятый) 05-03-2008 Напомню задачу, с которой может столкнуться любой Java Developer: "В качестве контроллера в нашей подсистеме будет выступать ShoppingCartShowController, поднятый в контексте приложения как singleton. А в качестве модели, будет выступать компонента ShoppingCart, поднятая в контексте сессии". | | Spring Framework 2.5.2 Released 04-03-2008 Вышел второй апдейт для Spring 2.5, он содержит исправление ошибок найденных в версии 2.5.1 и представляет целый ряд улучшений во фреймворке. | | Spring Framework - первые шаги (Конспект девятый) 26-02-2008 Теперь давайте усложним ситуацию и представим себе, что первая компонента описана как singleton, а вторая, как prototype. Кроме этого принимаем во внимание, что «singleton» агрегирует в себе «prototype». Что будет происходить в этом случае? | | Spring Framework - первые шаги (Конспект восьмой : Beans scope) 19-02-2008 Как я и обещал в одной из предыдущих лекций, пришло время поговорить про диапазоны видимости компонент (beans scope). | | Spring Framework - первые шаги (Конспект седьмой) 12-02-2008 Сегодня мы постараемся разобраться в преимуществах и недостатках, как Constructor Injection (CI), так и Setter Injection (SI). | | Spring Framework - первые шаги (Конспект шестой) 05-02-2008 Использование Constructor и Setter Injection в Spring Framework | | Spring Framework - первые шаги (Конспект пятый) 29-01-2008 Существует несколько способов „поднятия“ application context. Для иллюстрации я остановлюсь на простейшем способе, который с успехом можно использовать при разработке юнит тестов. | | Спрос на Spring разработчиков неуклонно растет 25-01-2008 Спрос на Spring разработчиков неуклонно растет, отмечает в своем блоге Род Джонсон. | | Spring Framework - первые шаги (Конспект четвертый) 22-01-2008 Теперь, прежде чем перейти к экспериментам с фреймворком, нам осталось разобраться, собственно, каким образом Spring связывает компоненты между собой. | | Январская конференция JUG Украина :: Кластеры на основе Terracotta 19-01-2008 Последнее собрание украинского JUG прошло в достаточно шикарной обстановке отеля Hyatt Regency. Лично меня презентация, привезенная Джонасом Бонером, посвященная построению кластеров на основе Open Source продукта, разрабатываемого его компанией, Terracotta, очень порадовала. | | Spring Framework - первые шаги (Конспект третий) 14-01-2008 Прежде чем двигаться дальше и рассматривать следующие немаловажные аспекты Spring Framework, я позволю себе остановиться на мнениях относительно DI (IoC) различных авторитетных разработчиков. | | Spring Framework – первые шаги (Конспект второй) 08-01-2008 Во время этой лекции нам предстоит разобраться с фундаментальным принципом, положенным в основу работы Spring Framework – Inversion of Control (Ioc).
И надо признаться, что это не простая задача, т.к. единства мнения в целесообразности использования этого принципа нет.
В начале нам предстоит понять, кто кого инвертирует и кто кого контроллирует. | | Spring Framework – первые шаги (Конспект первый) 04-01-2008 Spring Framework – явление на Олимпе индустрии разработки программного обеспечения, достойное внимания, хотя бы потому, что Spring смог выйти за рамки Java сообщества и сделать шаг в „святая святых“ - в .Net.
Используя опыт, приобретенный мною во время преподавания на тренингах по подготовке Java разработчиков, я постарюсь в цикле статей донести до читателей нашего сайта основные концепции, заложенные в Spring. Создать „конспект лекций“, который поможет Вам сделать свои первые шаги в мир J2EE с использованием Spring Framework. | | RSS Injection (Часть 2) 31-12-2007 Ни для кого не секрет, что в последнее время RSS каналы стали не только популярным средством продвижения новостных лент, но и эффективным способом обмена информационными потоками между сайтами. В данной статье речь пойдет о том, как реализовать потребность в RSS, используя один из самых популярных фреймворков – Spring. | |
|