Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Spring - инициализация приложения
Список форумов
 ->  Java Enterprise и распределённые технологии


 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
ffhTTy : 77
Новичок

СообщениеЯнв 10, 2012 23:03 
Ответить с цитатой
Доброго времени суток,

Как правильно выполнить инициализацию Spring приложения? В случае с обычным понятно - там входная точка main и от нее побежали.

Задача простая, на старте аппликации забрать пару конфигов с удаленных машин и выставить дефолтные настройки. Куда обычно впихивают такой код...
К началу Посмотреть профиль Отправить личное сообщение
Vlad : 1670
JavaTalks Team Member
Откуда: ODS-KRK-LON-HFE

СообщениеЯнв 11, 2012 20:41 
Ответить с цитатой
Для standalone приложенния - ты уже ответил, в main создаём Spring контекст:
Код:
ApplicationContext context =
            new ClassPathXmlApplicationContext("META-INF/context.xml");

или
Код:
ApplicationContext context =
            new FileSystemXmlApplicationContext("path/to/context.xml");

Для веб-приложения точкой входа является ServletContextListener или web.xml, в который нужно добавить:

Код:
<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>WEB-INF\applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Можно добавить ещё и свой ServletContextListener (как обёртка для спрингового), если нужно выполнить дополнительные шаги инициализации.

Это отвечает на твой вопрос?
_________________
@follow
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ffhTTy : 77
Новичок

СообщениеЯнв 12, 2012 16:46 
Ответить с цитатой
Спасибо. Нет, все же я не совсем понимаю как к объявлению ContextListener добавить полезный код.
Насколько я понял, ответ на мой вопрос init-method или @PostConstruct.
К началу Посмотреть профиль Отправить личное сообщение
Vlad : 1670
JavaTalks Team Member
Откуда: ODS-KRK-LON-HFE

СообщениеЯнв 13, 2012 0:01 
Ответить с цитатой
В интерфейсе ServletContextListener есть метод contextInitialized, в реализации которого можно сделать загрузку удалённых конфигов и их модификацию, а потом вызвать Spring-овый ContextLoaderListener (в этом случае в web.xml нужно регистрировать свой лисенер вместо спрингового). Или можно сохранить подготовленный(ые) файл(ы) конфигурации в локальной временной папке, на которую указывает параметр contextConfigLocation (в этом случае нужно оставить спринговый лисенер, а свой добавить перед ним).

П.С. Было бы больше времени, написал бы пример кода. Но думаю и так должно быть понятно.
_________________
@follow
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ffhTTy : 77
Новичок

СообщениеЯнв 13, 2012 17:32 
Ответить с цитатой
Вполне понятно, дальше разберусь. Спасибо.
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 1 из 1
Список форумов
 -> Java Enterprise и распределённые технологии


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru