
|
|
29-01-2008 Существует несколько способов „поднятия“ application context. Для иллюстрации я остановлюсь на простейшем способе, который с успехом можно использовать при разработке юнит тестов.
Конспект пятый : Application context (продолжение)
В предыдущей лекции мы определились, что Application context - это описание среды окружения, т.е. в файловой системе он может присутствовать как набор конфигурационных файлов. В то же время, в библиотеке классов Spring Framework существует интерфейс org.springframework.context.ApplicationContext, предоставляющий следующие возможности: фабричные методы для доступа к компонентам приложения; возможность загрузки файлов ресурсов; поддержку i18n; наследование от родительского контекста; etc.
Существует несколько способов "поднятия" application context. Для иллюстрации я остановлюсь на простейшем способе, который с успехом можно использовать при разработке юнит тестов. Давайте рассмотрим его пример: package com.personality.examples.spring.ioc; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; publicclass Main { publicstaticvoid main(String[] args) { ApplicationContext ctx = new FileSystemXmlApplicationContext("registratoApplicationContext.xml"); RegisterFormControllerReadyForIoC controller = (RegisterFormControllerReadyForIoC) ctx.getBean("registerFormController"); controller.send(); } } Как видно из примера, первой строкой метода main, мы загружаем контекст приложения из файла registratoApplicationContext.xml (см. предыдущую лекцию). После чего, с помощью метода getBean() у нас появляется возможность получить доступ ко всем компонентам, объявленным в соответствующем контексте. Однако следует отметить тот факт, что единого мнения о пользе "вынесенного конфигурирования в отдельный xml файл" нет. С одной стороны, у нас складывается впечатление, что конфигурирование, вынесенное за рамки кода, позволяет выполнять его (конфигурирование) не программистом системы, а скажем администратором!? C другой стороны, Мартин Фаулер в своих статьях ставит под сомнение тот факт, что подобное конфигурирование может выполнить человек не посвященный в таинства всей системы, ну и кроме того получается, что каждая платформа обрастает своими конфигурационными файлами: у Spring свой формат xml-файлов, у Struts - свой, jBoss, TomCat... etc. Т.о. разрабочик все время должен держать себя в тонусе и отслеживать все изменения, происходящие в Java-сообществе, для того чтобы не выпасть из обоймы ;). Очевидно, что все вышесказанное заставляет задуматься архитекторов о том, чтобы привести декларативное конфигурирование системы к единому стандарту, понятному всем Java разработчикам. Альтернативным подходом в данном случае является использование анотаций, появившихся в J2SE 5.0. И работы в этом направлении ведутся. Это подтверждает и появление EJB 3.0, и наметившийся трэнд в Spring Framework – с каждой новой версией разработчики Spring поддерживают все большее количество анотаций, позволяющих сконфигурировать систему непосредственно в коде приложения. Сейчас мы не будем останавливаться на этих возможностях Их мы рассмотрим в одной из следующих лекций.
Ну, и на последок, я бы предложил читателю ознакомиться с еще одним вариантом, "поднятия" контекста приложения в рамках Servlet-контейнера (например, TomCat 5.5.x). Рассмотрим соответствующий web.xml: <web-app> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/registratorApplicationContext.xml </param-value> </context-param> <servlet> <servlet-name>registratorapp</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>registratorapp</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
|
Комментарии к статье "Spring Framework - первые шаги (Конспект пятый)" (0) | |
|
| Веб Приложение на ОСГИ 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. | |
|