Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

Spring: простейшее приложение (Hello World)

31.03.2013, 17:25. Показов 3989. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу создать простейшее приложение на spring, но кой чего не получается и мне не понятно чего делать.
Имееться: spring 3.2.2 выкачанный в полном объёме с оф. сайта; IDEA12 ; пример из книги.

Что делаю: создаю проект в IDEA spring, указываю где есть библиотеки spring ну и в этом плане всё ок.
Пишу свой HelloWorld, смысл у него такой что есть есть интерфейс MessageRenderer с set / get методами и методом выводящим строку на экран, а ему в придачу есть интерфейс MessageProvider который может отдать строку этому нашему MessageRenderer. Ну да здесь, несмотря на всю запутанность, вроде всё хорошо.Проблема в двух вещах:

1)XML файл переписанный с книги не является корректным (по мнению IDEA по крайней мере, она выделяет p:messageProvider-ref="provider" и говорит что здесь такого быть не должно.
XML
1
2
3
4
5
6
7
8
9
10
<?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:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 
    <bean id="provider" class="myPackage.HelloWorldMessageProvider" />
    <bean id="renderer" class="myPackage.StandardOutMessageRender" p:messageProvider-ref="provider" />
 
</beans>
2)Несмотря на то что IDEA бракует xml файл (да даже если я вообще удалю своё описание бинов то ничего не изменится) при выполнении main
Java
1
2
3
4
5
6
7
8
9
10
11
12
package myPackage;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class HelloWorldSptringDI {
    public static void main(String[] args){
        //инициализация App context
        ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml");
        MessageRenderer mr = ctx.getBean("renderer", MessageRenderer.class);
    }
}
на 9ой строке я получаю exception:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.springframework.context.support.Abst ractApplicationContext.<init>(AbstractAp plicationContext.java:164)...

Так как я ничего не понимаю в java beans то чего оно хочет-то ? У меня в xml файле нет упоминаний о apache да и логер я грузить не просил так что чего ему захотелось апачевский логер мне не понятно и чего мне теперь делать тоже непонятно. Подскажите пожалуйста либо приведите пример своего spring приложения где будет понятно какой xml'ник надо ему сунуть чтобы не было исключений.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2013, 17:25
Ответы с готовыми решениями:

Не запускается простейшее приложение
создал файл HelloWorld.java class apples{ public static void main(String args){ System.out.println(&quot;test&quot;); } } в...

Не запускается простейшее приложение на Spring MVC Maven Intellij Idea
Помогите пожалуйста запустить простейший проект на Spring. Настройки web.xml &lt;?xml version=&quot;1.0&quot;...

простейшее приложение
&lt;?php $fp=fsockopen(&quot;www.google.com&quot;, 80, $errno, $errstr, 30); if( $fp) { echo &quot;$errstr ($errno) &lt;br&gt; /&gt;\n&quot;; } else { $out=&quot;GET...

9
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
31.03.2013, 17:39
нафига вам сдался этот p-namespace
выберите логгер и пропишите как в офф доке http://static.springsource.org... rview.html
иначе не заработает, спринг серверная платформа и логирует в определённый вами логер (который вы соотвественно настраиваете куда он будет плевать) а не куда попало в консоль там и тд

ну и напоследок, если взяли самый новый спринг, то и фичи юзайте из его неймспейса 3.2
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
31.03.2013, 17:41  [ТС]
UPD: проблема решена, вчитался что spring не распространяется со всем что надо для работы и тот же apache logger надо качать отдельно. Интересно, чего было не использовать встроенный в последние jdk logger.

Добавлено через 2 минуты
Цитата Сообщение от mutagen Посмотреть сообщение
нафига вам сдался этот p-namespace
И нафиг не сдался, но я же только пробую себя в этом spring, откуда же мне знать как можно сделать по другому
Как же тогда я мог задать стандартный логер и не теребить апачевский используемый по умолчанию? К сожалению та дока меня пока что пугает и я в неё так сразу вот "не въеду".
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
31.03.2013, 17:47
Цитата Сообщение от Gepar Посмотреть сообщение
И нафиг не сдался, но я же только пробую себя в этом spring, откуда же мне знать как можно сделать по другому
)))
если дока пугает то пробегитесь по примерам
http://www.roseindia.net/progr... gframework
а потом по 3ке отдельно http://www.roseindia.net/tutorial/spring/spring3/
1
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
02.04.2013, 11:32
Цитата Сообщение от Gepar Посмотреть сообщение
Интересно, чего было не использовать встроенный в последние jdk logger.
Потому что он убогий, говоря откровенно. http://habrahabr.ru/blogs/java/113145/
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
02.04.2013, 16:52  [ТС]
Skipy, ну я логерами не пользуюсь, вот и не знал, попробовал что стандартный логгер со своими задачами справляется да и всё. Не писал я пока что ничего такого большого на java. Но распространять спринг где в core юзается левый логер и без него уж никак не запустить этот самый спринг это тоже не очень то логично выходит.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
02.04.2013, 17:07
Цитата Сообщение от Gepar Посмотреть сообщение
Но распространять спринг где в core юзается левый логер и без него уж никак не запустить этот самый спринг это тоже не очень то логично выходит.
Э-э-э... "левый логгер" - это log4j? Или JCL?
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
02.04.2013, 17:20  [ТС]
Цитата Сообщение от Skipy Посмотреть сообщение
log4j
Угу, хотя я читал что именно смотря на него стандартный писался так почему бы его (стандартный, входящий в состав java начиная с 6ой версии вроде) и не использовать?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
02.04.2013, 18:03
Цитата Сообщение от Gepar Посмотреть сообщение
стандартный
= убогий
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
02.04.2013, 18:54
Цитата Сообщение от Gepar Посмотреть сообщение
Угу, хотя я читал что именно смотря на него стандартный писался так почему бы его (стандартный, входящий в состав java начиная с 6ой версии вроде) и не использовать?
Потому что стандартный убогий до невозможности, несмотря на то, что его писали с log4j. А Log4j очень долго был стандартом де-факто. И сейчас под SLF4J чаще всего сидит именно он. Logback только начинают использовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.04.2013, 18:54
Помогаю со студенческими работами здесь

Простейшее приложение на WinAPI
Нашел код простейшего приложения на WinAPI uses Windows; var Msg: TMsg; Begin while LongInt(GetMessage( Msg, 0, 0,...

Не компилируется простейшее приложение на Q
Установил Qt 5.2 (при установке из модулей убрал полностью vs2012, иначе ругаться будет), запустил, создал новое Qt GUI App,...

Простейшее консольное Qt приложение
возникают ошибки при обьявлении QVector&lt;QString&gt; (имеет не полный тип и не может быть определен), а так же при использовании qDebag()...

Простейшее ajax-приложение
Все добрый вечер. Только начал осваивать основы веб разработки и пытаюсь создать простейшее ajax-приложение, но даже оно почему-то не...

Создать простейшее приложение
Создать простейшее приложение в Lazarus. Форма должна содержать три взаимосвязанных компонента различных страниц...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru