Comments 52
Спасибо за статью, узнал несколько новых интересных штук…
+1
А где собственно валидация ModelAttribute и редактирование данных? Без них подобных примеров в интернете тоннами.
0
В статье я делаю упор на совместный запуск кучи кода. Я нашёл лишь пару вменяемых туториалов на английском, которые в одном посте учили, как подружить MVC, Security и Hibernate.
Согласитесь, что валидацию можно прикрутить позднее, с редактированием данных тоже повозиться после начального запуска системы.
Можете пример считать ступенькой к изучению официальных мануалов по технологиям, в которых всё описано уже детально.
Согласитесь, что валидацию можно прикрутить позднее, с редактированием данных тоже повозиться после начального запуска системы.
Можете пример считать ступенькой к изучению официальных мануалов по технологиям, в которых всё описано уже детально.
+1
Про это написано как минимум в трех книгах которые я читал к примеру в
Spring in Action
Spring Enterprise Recipes
Pro Spring 2.5
Плюс есть такая штука как Pet Clinic и собственно Reference. Так что увы ничего нового или оригинального чего нет в интернете я тут не вижу. А вот отсутствие валидации и обновления и редактирования данных увы вижу.
Spring in Action
Spring Enterprise Recipes
Pro Spring 2.5
Плюс есть такая штука как Pet Clinic и собственно Reference. Так что увы ничего нового или оригинального чего нет в интернете я тут не вижу. А вот отсутствие валидации и обновления и редактирования данных увы вижу.
0
Ок, я готов услышать ваши пожелания по тематике второй части данной статьи.
Валидация, редактирование данных.
Напишу пост, будем обсуждать.
Ну и чуть-чуть не в тему.
На хабре очень удобно писать статьи (мне нравится редактор и подход к публикации постов, аудитория), но имхо конструктивных комментариев по сабжу больше можно услышать всё-таки в тематических комьюнити.
Валидация, редактирование данных.
Напишу пост, будем обсуждать.
Ну и чуть-чуть не в тему.
На хабре очень удобно писать статьи (мне нравится редактор и подход к публикации постов, аудитория), но имхо конструктивных комментариев по сабжу больше можно услышать всё-таки в тематических комьюнити.
0
Как я уже писал это: валидация данных, редактирование данных, редактирование малого объема данных (это где в форме отображаются два поля из десяти), использование REST, реализация своего UserDetailsService далеко не всегда подходит стандартный источник данных, использование GenericDAO, что такое Transaction propagation и зачем оно нужно. Достаточно? :]
PS Если что я в свое время писал как сделать свое представление в Spring и использование ModelAttribute при редактировании.
PS Если что я в свое время писал как сделать свое представление в Spring и использование ModelAttribute при редактировании.
0
А почему бы нам не использовать Spring Roo, который избавит нас от нудного написание DAO, Контроллеров, сущностей?
+3
Где-то в ru_java я прочитал рекомендуемый к использованию в веб стек технологий:
Core Java (I/O, Collections, Threads),
Spring 3 (MVC, Security),
JPA на базе Hibernate,
Freemarker/JSP.
С ним согласен, от него и пляшу. Если вы расскажете преимущества использования Roo, я охотно поменяю свою позицию.
Core Java (I/O, Collections, Threads),
Spring 3 (MVC, Security),
JPA на базе Hibernate,
Freemarker/JSP.
С ним согласен, от него и пляшу. Если вы расскажете преимущества использования Roo, я охотно поменяю свою позицию.
0
Ну, вероятно тогда roo просто не существовал ))
По крайней мере, вероятно вам стоит о нем почитать.
Там, конечно, к core java прибавляется aspectJ, но ИМХО это не криминал.
По крайней мере, вероятно вам стоит о нем почитать.
Там, конечно, к core java прибавляется aspectJ, но ИМХО это не криминал.
+1
Прежде чем так писать неплохобы почитать что такое Roo.
Собственно Roo никак не относится к тому стеку что вы описали. Да и вообще это не технология.
Это удобное скриптовое описание проекта.
Одной строчкой описываете вашу ентити, затем по строчке на каждое поле.
В результате генерится проект с объектами, что убирает нудное начальное описание всего.
Также генерится по желанию конфиг хибера для доступа к БД.
Ну и скаффолдинг никто не отменял. Все очень удобно.
А потом получившуюся болванку можно уже руками дописывать до нужного стостояния.
И что самое интересное — все что вы допишете руками подхватится Roo…
Т.е. если через какое-то время вам понадобится еще одна ентити например, то вы просто в консоли Roo наберете команду создать ентити и все…
В общем это скриптовый инструмент управления проектом… причем очень толковый и удобный.
Который не заменяет что-то, а дополняет существующие инструменты.
Единственно что расстраивает, это то, что он еще версии 1. Т.е. он очень активно развивается и меняется. А это непозволяет пока его юзать в продакшене.
Собственно Roo никак не относится к тому стеку что вы описали. Да и вообще это не технология.
Это удобное скриптовое описание проекта.
Одной строчкой описываете вашу ентити, затем по строчке на каждое поле.
В результате генерится проект с объектами, что убирает нудное начальное описание всего.
Также генерится по желанию конфиг хибера для доступа к БД.
Ну и скаффолдинг никто не отменял. Все очень удобно.
А потом получившуюся болванку можно уже руками дописывать до нужного стостояния.
И что самое интересное — все что вы допишете руками подхватится Roo…
Т.е. если через какое-то время вам понадобится еще одна ентити например, то вы просто в консоли Roo наберете команду создать ентити и все…
В общем это скриптовый инструмент управления проектом… причем очень толковый и удобный.
Который не заменяет что-то, а дополняет существующие инструменты.
Единственно что расстраивает, это то, что он еще версии 1. Т.е. он очень активно развивается и меняется. А это непозволяет пока его юзать в продакшене.
+2
В таком случае Roo — это инструмент, к которому следует присмотреться.
Ну а начинающим разработчикам всё же рекомендую хоть раз пробежаться по настройкам самому хотя бы для того, чтобы знать как и что с чем связано.
Спасибо вам за обстоятельный комментарий.
Ну а начинающим разработчикам всё же рекомендую хоть раз пробежаться по настройкам самому хотя бы для того, чтобы знать как и что с чем связано.
Спасибо вам за обстоятельный комментарий.
0
«офтопик»
Начинающим конечно надо все руками делать… но есть один ньюанс.
Сейчас, для бизнеса, все большую роль играет так назваемый «тайм ту продакт».
Т.е. не так важно качество как время его запуска в производство.
Отсюда столько генераторов всего что только можно…
и в этих условиях многие начинающие разработчики просто непонимают что делают.
Они научились запускать генераторы и гуевые дизайнеры… и для получения результата им больше ничего ненадо… а бизнес поддерживает это монетой…
А потом мы удивляемся, что 4-х процессорный сервак с 16 гигами памяти ложится от 100 пользователей…
В общем грустно это… думаю время настоящих джедаев потихоньку проходит…
Начинающим конечно надо все руками делать… но есть один ньюанс.
Сейчас, для бизнеса, все большую роль играет так назваемый «тайм ту продакт».
Т.е. не так важно качество как время его запуска в производство.
Отсюда столько генераторов всего что только можно…
и в этих условиях многие начинающие разработчики просто непонимают что делают.
Они научились запускать генераторы и гуевые дизайнеры… и для получения результата им больше ничего ненадо… а бизнес поддерживает это монетой…
А потом мы удивляемся, что 4-х процессорный сервак с 16 гигами памяти ложится от 100 пользователей…
В общем грустно это… думаю время настоящих джедаев потихоньку проходит…
0
Думаю надо добавить, что кроме автоматизации написания скучных сущностей и контроллеров, Roo еще умеет генерировать файндеры — методы, которые позволяют искать что-то по параметрам. И уж эти файндерыгенерируются просто отлично, причем очень гибко.
И еще Roo позволяет не думать о том, как работает база данных — все сущности нашей программы автоматически генерируются в нашей базе, что тоже весьма удобно (ИМХО, конечно)
И еще Roo позволяет не думать о том, как работает база данных — все сущности нашей программы автоматически генерируются в нашей базе, что тоже весьма удобно (ИМХО, конечно)
0
Ну, уже 1.1 ))
В нем добавили еще такой крутой штук, как реверс инжиниринг базы данных.
А значит можно разрабатывать с уже готовой базой )
В нем добавили еще такой крутой штук, как реверс инжиниринг базы данных.
А значит можно разрабатывать с уже готовой базой )
0
Соглашусь, сейчас в большинстве случаев очень критична гибкость на старте проекта, когда сам не понимаешь, что должно получиться в итоге (прототипирование). А вот уже когда удачная концепция нащупана (обычно это сопровождается ростом нагрузки), пора приниматься за оптимизацию. На этом этапе гибкости требуется меньше, архитектура становится более монолитная (заточенная под конкретные задачи). Думаю, это типичный цикл для приложений.
0
К примеру потому что Roo очень активно использует аспекты как результат то что он генерит это кхм сильное.
0
Спасибо! И поддержу изпользования Roo. По сути будет тоже самое как у Вас, но многое он Вам сгенерит сам.
Это не еще одна технология, а метод генерации классов и связи между ними
Это не еще одна технология, а метод генерации классов и связи между ними
+1
Нужно где-то прописывать сервисы и дао, чтобы спринг их нашел? Или он автоматом знает, что в пакете services или dao нужно искать классы для включения их в IoC движок?
0
в файле root-context.xml
Ну а в классах:
или
<context:component-scan base-package="net.schastny.contactmanager.dao"/>
<context:component-scan base-package="net.schastny.contactmanager.service"/>
Ну а в классах:
@Component
или
@Service
0
Не нашел использование аннотации Component. Как подхватится ContactDAO и его реализация ContactDAOImpl в сервисе ContactServiceImpl?
0
Тонны xml конфигов, помы, мавены, хуявены, аннотации, мапингы, какие-то слои, DAO, сервисы, 3 фреймворка, отдельная система логирования, которую опять настраивать. Плюс сборка проекта мавеном и многочисленные компиляции. Это ад и чистилище для нормального веб-разработчика.
А ну и мануальчик на несколько листов А4 со скриншотиками и 11 пунктами для тупейшего веб-приложения, которое пишется, используя правильные для веб-разработки инструменты, за 10 минут.
Зачем писать веб-приложения на Java?
© ibash.org.ru/quote.php?id=13399
А ну и ещё кто-то умный сказал предназначение Java:
А ну и мануальчик на несколько листов А4 со скриншотиками и 11 пунктами для тупейшего веб-приложения, которое пишется, используя правильные для веб-разработки инструменты, за 10 минут.
Зачем писать веб-приложения на Java?
<_valexey_> пока скачаешь одну библиотеку, пока другую, пока их xml конфигом на полметра склеишь, пока маппинг для hibernate настроишь, пока базу нарисуешь, пока веб-сервисы поднимешь
<_valexey_> вроде и hello world пишешь, а уже две недели прошло и всем кажется, что это учетная система для малого бизнеса
© ibash.org.ru/quote.php?id=13399
А ну и ещё кто-то умный сказал предназначение Java:
Java is a DSL for converting large XML files into Stack Traces.
+7
Всё так и есть, как вы сказали.
+1
Велкам ту зе ентерпрайз-ворлд. Ты прям как в первый раз это увидел :)
+1
Мне так никто и не рассказал сакрального смысла понятия«ынтерпрайз» :(
Быть может, «ынтерпрайз» — это когда делаешь простейшее приложение несколько месяцев и потом берешь за это приложение кучу денег?
Быть может, «ынтерпрайз» — это когда делаешь простейшее приложение несколько месяцев и потом берешь за это приложение кучу денег?
0
Поэтому сайтеги никто на javaEE практически не делает
0
А чем вас не устаривает Maven? Что вы предлагаете в альтернативу? Как по мне Maven это хорошее решение, когда проект вырастает из хомпаги… Или когда работаете в команде. Все пытаюстся его повторить — для питона, пхп, руби, но я еще не видел удачных решений.
Чем вам не нравятся аннотации? Опять же в джаного они тоже появился, потому что это удобно. Очень удобная штука как замена XML конфигов. Так что тут вы тоже не правы.
Всё остальное это EE, но это не означает, что на Java нельзя сделать хорошую платформу для удобной и простой разработки. Например, я сейчас этим занимаюсь на базе Tapestry 5 (отличный веб-фреймворк, но нужно кое-что допилить) делаю простую и удобную платформу, где нет кучи XML конфигов и прочего J2EE оверхеда.
Чем вам не нравятся аннотации? Опять же в джаного они тоже появился, потому что это удобно. Очень удобная штука как замена XML конфигов. Так что тут вы тоже не правы.
Всё остальное это EE, но это не означает, что на Java нельзя сделать хорошую платформу для удобной и простой разработки. Например, я сейчас этим занимаюсь на базе Tapestry 5 (отличный веб-фреймворк, но нужно кое-что допилить) делаю простую и удобную платформу, где нет кучи XML конфигов и прочего J2EE оверхеда.
+1
вот поэтому я и люблю SpringRoo
Все то же самое делается в двадцать строк ))
А отальное генерится автоматически )
Все то же самое делается в двадцать строк ))
А отальное генерится автоматически )
+1
В идеале веб разработчику нужно иметь инструмент, где для создания сайта пишем всего одну строку: «Сайт!».
Остальное генерится автоматически.
Хотим магазин с интеграцией в фейсбуке, пишем: «Сайт! Интеграция: фейсбук.»
Такое время придёт, и Spring Roo, в котором для создания приложения нужно аж двадцать строк, объявят вне игры.
Остальное генерится автоматически.
Хотим магазин с интеграцией в фейсбуке, пишем: «Сайт! Интеграция: фейсбук.»
Такое время придёт, и Spring Roo, в котором для создания приложения нужно аж двадцать строк, объявят вне игры.
0
На Java не надо писать веб-сайты. На нем надо писать сложные веб-приложения, тогда и будет стрелять. Иначе же использование java выливается в попытку БЕЛАЗом перевозить тачку песка.
+2
Я бы в пример ещё валидацию через JSR 303 прикрутил для полноты картины.
0
Спасибо за статью, только файлы не все открываются.
0
великолепно! большое дело сделали, спасибо!
0
А почему javax.persistence- аннотации использованы? Это альтернатива ...hbm.xml-файлам?
0
+1
Часть 4, добавляем REST-сервис habrahabr.ru/post/173593
0
В концах jsp страниц какие-то странные фрагменты, похоже на запакованный javascript. Малварь?
0
И спустя годы ваш пост помогает в освоении этой связки :)
0
У меня тут есть 2 места где посвечивает красным и никак не могу решить проблему:
1) файл «contact.jsp» строка "/logout" />">" где подсвечивает красным "/logout"
2) файл «login.jsp» строка "/index" />">">" где подсвечивает красным "/index"
Кто знает как решить проблему?
И еще: папка «resources» должна быть в папке «WEB-INF» или в папке «main»?
1) файл «contact.jsp» строка "/logout" />">" где подсвечивает красным "/logout"
2) файл «login.jsp» строка "/index" />">">" где подсвечивает красным "/index"
Кто знает как решить проблему?
И еще: папка «resources» должна быть в папке «WEB-INF» или в папке «main»?
0
Sign up to leave a comment.
Учимся готовить: Spring 3 MVC + Spring Security + Hibernate