|
|
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
Всем привет! Делаю проект по изучению англ. слов.(да да изобретаю велосипед), я прекрасно знаю, что есть такие прекрасные ресурсы как duolingo, lingualeo и другие, но их функционал меня не устраивает. Буквально пару месяцев назад начал изучать Spring и решил на нем писать проект, но так как experience маловат, то есть много вопросов. Для начала взял такой стек: Spring MVC/Security; JSP(JSTL); Tomcat; сборщик maven; MySQL; для работы с базой использую JdbcTemplate. Что смог сделать: 1. Авторизацию пользователя. 2. Регистрацию нового пользователя. 3. Добавления\удаления\исправления(весь CRUD) слова. 4. Добавления к слову примеров. 5. Тренировка слов. Ошибки и проблемы на пути: 1. Первые два пункта сделал без валидации и проверок данных, так как решил отложить это на позже. 2. CRUD слова сделал без проблем, но опять таки без валидации и проверок данных, но самый большой минус - я создал для этого 3jsp страниц(ТРИ! КАРЛ!) editWord.jsp/addWord.jsp, а так же home.jsp на которой и появляются все слова, по сути по примерам из интернета аля *Spring MVC CRUD Example*. 3. Примеры предложений для слова. Тут я уже не выдержал, делать отдельные страницы для CRUD я отказался и сделал одну страницу jsp которую порезал на jsp фрагменты, выделил форму ввода данных и в ней добавлял и редактировал данные, а под этой формой выводилась таблица примеров где можно было удалять примеры. Тут я и столкнулся с проблемой когда нужно больше чем просто CRUD и написания контроллеров, так как по переходам страниц мне нужно было обнулить данные примера. Например при переходе на страницу home.jsp я прописывал в контроллер("home") if(example!=null){ example = null}. 4. Само собой сюда добавляем проблему контроллеров из пункта 3. 5. Так же нужно добавить транзакции и наверное пулы для работы с базой. Не уверен так же правильно ли, что каждый переход по страницам - лезет в базу за данными. Вопросы: 1. Думаю переделать проект под модули, так как хочу еще добавить один функционал - чтения книг на англ. Например выделить 1 модуль для работы со словами, 2 модуль для security, 3. для чтения книг, 4 модуль для веб, стоит ли делать такую структуру или может есть альтернатива? Ввиду отсутствия опыта, хотелось бы узнать от профи как лучше построить структуру/логику проекта. 2. Работать с JSP(JSTL) дальше или переделать по принципу REST, а front-end на javascript(ajax), angularjs? Думаю это исправит мою проблему с контроллерами, так как только будет передаваться JSON, а фронт будет уже сам решать как переходить по страницам и показывать данные. 3. Использовать Hibernate/JPA или лучше простой JDBC(без JdbcTemplate)? 4. Сборщик maven или перейти на gradle? 5. База данных, правильно ли, что при переходах по страницах идет конект к базе? 6. Как подключить переводчик к своему приложению? Видел на многих сайтах по изучению англ., что по клику на слово можно увидеть перевод и тд. Если есть у кого примеры как это организовать - будет очень хорошо. 7. Что можно выбрать вместо Tomcat? JBoss/Jetty/Glassfish? или все таки Tomcat? 8. Как правильно организовать проверку данных вводимых пользователем? У Spring MVC и Spring Security есть свои плюшки для этого, кто что предпочитает юзать? 9. Этот пункт самый главный, хотелось бы узнать как строится настоящие web приложения на java от А до Я от профи. Как по мне то в интернете мало инфы насчет этого, сразу выдаёт хало ворд и тому подобное. Хотелось бы услышать советы, получить ссылки на ресурсы полезные, а также критику(так как я первый раз задаю вопросы на форуме). Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 13:45 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
1. - добро пожаловать в мир ООП 2. - фронтэнд на ангулярке екстжсе жквери и т.п. - это вообще отдельная дисциплина, параллельная. хочется поизучать? ну велкам. 3. -дададададад, ДАДАДАДАДДА, ДААААААААААААААААА. неужели кто то еще на ждбс пилит? даже спринг ждбс - это жуть. забудь. ну, для порядку знать хорошо. а что-то большое пилить на них чот как то скучно. 4. пофиг, дело вкуса. 5. а что тут плохого? делай в хибере. 6. что значит подключить? кликнул слово - вылез ответ? ну если жсп стайл - делаем новый контроллер в который передается параметром слово а потом слово ищется в базе. 7. а чем томкат плох? по мне так это админам поиграться весело с разными контейнерами. а тебе какая разница? 8. в спринге есть такая штука как валидатор. надо новый бин создавать, в него (валидатор) передается значение и там по какой-то логике валидится. либо у хибера есть готовые аннотации, но там всё просто либо либо. сложной логики всунуть не выйдет. 9. на хабре есть статья неплохая "готовим spring и hibernate" там достаточно хорошо именно что каркас расписан с тремя слоями - дао, сервисом и контроллерами, а так же интерфейсы. почитай. это к вопросам структурирования. тебе для твоего приложения этого каркаса с головой хватит даже в том виде в каком оно там описано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 13:59 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
lor2, спасибо за ответ. Насчет jdbc и hibernate, как по мне то на jdbc будет быстрее работать приложение чем на hibernate. Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 14:05 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
UDAnton1. Думаю переделать проект под модули, так как хочу еще добавить один функционал - чтения книг на англ. Например выделить 1 модуль для работы со словами, 2 модуль для security, 3. для чтения книг, 4 модуль для веб, стоит ли делать такую структуру или может есть альтернатива? Ввиду отсутствия опыта, хотелось бы узнать от профи как лучше построить структуру/логику проекта. Нет особого смысле делить на "модули". Делить нужно на пакеты (package) и абстрактные слои. При этом желательно пакеты собирать по фичам, а не по слоям. UDAnton2. Работать с JSP(JSTL) дальше или переделать по принципу REST, а front-end на javascript(ajax), angularjs? Думаю это исправит мою проблему с контроллерами, так как только будет передаваться JSON, а фронт будет уже сам решать как переходить по страницам и показывать данные. Конечно, AngularJS или любой другой JS фреймверк. UDAnton3. Использовать Hibernate/JPA или лучше простой JDBC(без JdbcTemplate)? Hibernate, однозначно. UDAnton4. Сборщик maven или перейти на gradle? Пофигу. Если Maven уже освоил, то переходи, конечно на gradle. Расширение кругозора оно всегда пригодится. UDAnton5. База данных, правильно ли, что при переходах по страницах идет конект к базе? Да, пофигу, в общем-то. Что именно в этом смущает? UDAnton6. Как подключить переводчик к своему приложению? Видел на многих сайтах по изучению англ., что по клику на слово можно увидеть перевод и тд. Если есть у кого примеры как это организовать - будет очень хорошо. Изучай DHTML/JavaScript UDAnton7. Что можно выбрать вместо Tomcat? JBoss/Jetty/Glassfish? или все таки Tomcat? Точно не Glassfish. Имеет смысл пощупать Wildfly (который JBoss для web). Опять же исключительно для расширения кругозора. UDAnton8. Как правильно организовать проверку данных вводимых пользователем? У Spring MVC и Spring Security есть свои плюшки для этого, кто что предпочитает юзать? http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html Хотя мне оно и не очень нравится. UDAnton9. Этот пункт самый главный, хотелось бы узнать как строится настоящие web приложения на java от А до Я от профи. Как по мне то в интернете мало инфы насчет этого, сразу выдаёт хало ворд и тому подобное. Ищи проекты с именами Pet Store, Pet Shop, Pet Clinic. UDAntonа также критику(так как я первый раз задаю вопросы на форуме). Всё ОК. Отличный процесс для самообучения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 14:07 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
UDAnton3. Использовать Hibernate/JPA или лучше простой JDBC(без JdbcTemplate)? Мне проще на JDBC. Им и пользуюсь. UDAnton5. База данных, правильно ли, что при переходах по страницах идет конект к базе? Современные драйвера и интерфейсы умеют делать Connection Pooling. Если брать коннект из ресурса Application Server'а (у нас был WebLogic), connection pooling появляется сам собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 14:08 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
lor2, а насчет фронта, то там можно больше возможностей организовать для клиента чем на jsp... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 14:10 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо за ответ. авторНет особого смысле делить на "модули". Делить нужно на пакеты (package) и абстрактные слои. При этом желательно пакеты собирать по фичам, а не по слоям. Я наткнулся просто на видос от javatalks - https://vimeo.com/57932771, там довольно таки интересная структура вот и задумался. авторHibernate, однозначно. А на разве хибер не будет тормозить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 14:18 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
UDAntonА на разве хибер не будет тормозить? Не смешите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 14:22 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
UDAntonlor2, а насчет фронта, то там можно больше возможностей организовать для клиента чем на jsp... кто ж. спорит. но только фронт это уже не ява даже близко. жсп то еще куда ни шло туда-сюда, а жс с еейными фворками это отдельная дисциплина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 15:14 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
BlazkowiczUDAntonА на разве хибер не будет тормозить? Не смешите. Если нужно залить в базу 100500 новых сущностей, то на JDBC на порядок быстрее. Хотя ради удобства наверное как правило этим можно пренебреч ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 16:01 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
смотря как замерять. я вот например пробовал заливать 1 сучность 1 транзакция и 1 транзакция 100500 сучностей - разница в хибере где то эээээээ в общем, много порядков. (если порядок это один ноль). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 16:05 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
xifrЕсли нужно залить в базу 100500 новых сущностей, то на JDBC на порядок быстрее. если нужно дрифтовать, то задний привод уделает передний. но это же не значит, что вам по дороге на работу дрифтовать нужно каждый день. почитайте, чего хочет ТС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 16:06 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
Если нужно залить 100500, то для Oracle - я писал свою приблуду на С с использованием OCI с пакетной обработкой. 100% загрузка CPU на сервере и сеть по максимому. PostgreSQL - аналогично на Java, с использованием команды COPY вместо Insert. "Стандартный" JDBC тут тоже отдыхает ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 16:24 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
chpashaxifrЕсли нужно залить в базу 100500 новых сущностей, то на JDBC на порядок быстрее. если нужно дрифтовать, то задний привод уделает передний. но это же не значит, что вам по дороге на работу дрифтовать нужно каждый день. почитайте, чего хочет ТС это да, я вроде вторым предложение в своем посте это и написал :) а про 100500 я написал как пример, просто умиляют такие категоричные заявления как у Blazkowicz ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 16:35 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
xifrа про 100500 я написал как пример, просто умиляют такие категоричные заявления как у Blazkowicz ты не понял. Большинство проектов устроит Хибер. О том что тут спец проект с заливкой 100500 и более сущностей никто не говорил. А придумать и завалить можно и хибер и JDBC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 16:53 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
Petro123, а как насчет фронта на angularjs, а не jsp? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 19:42 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
UDAnton, JSP а потом ангуляр. А то будешь js а не java программистом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 19:49 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
UDAntonPetro123, а как насчет фронта на angularjs, а не jsp? ну хз, мне angular все никак не идет, ну точнее я его знаю, но не покидает мысль что что-то тут не так:) Вот ReactJS смотрю - пока посимпатичнее выглядит. Беда всех этих фреймворков - что они все диктуют СВОЮ архитектуру, и сходу въехать довольно сложно. Было дело что плюнул и написал свой SPA-фреймворк, что не так уж и сложно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2016, 23:34 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 01:15 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
вкратце, в этой книге уже отошли от дибильных хмл конфигов?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 07:45 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
xifrBlazkowiczпропущено... Не смешите. Если нужно залить в базу 100500 новых сущностей, то на JDBC на порядок быстрее. Хотя ради удобства наверное как правило этим можно пренебреч TC достаточно подробно расписал проект. Что вы тут херню какую-то выдумываете? Существует масса сценариев где ORM не нужен. Вы бы блин контекст темы попытались бы в комментариях учитывать. А то здесь что ни тема, то срач потому что каждый комментирует только одну фразу другого комментатора. А первоначальный вопрос никого и не волнует похоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 09:44 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
xifrа про 100500 я написал как пример, просто умиляют такие категоричные заявления как у Blazkowicz Умиляют такие нелепые попытки самоутвердиться. Чтоже ты только про массированную загрузку а БД написал? Других сценариев не оптимальных для ORM ещё не изучил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 09:48 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
Petro123UDAnton, JSP а потом ангуляр. А то будешь js а не java программистом. JSP не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 09:49 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJSP не нужен. я просто не знаю простого и адекватного инструмента в Java изучить понятие контроллёр. Без всяких допингов и ускорителей типа спринг. А у ангуляра, контроллёр - основная фича. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 11:38 |
|
||
|
Совет по реализации web приложения на Spring MVC
|
|||
|---|---|---|---|
|
#18+
забыл никну хз, мне angular все никак не идет, ну точнее я его знаю, но не покидает мысль что что-то тут не так:) "не идёт" совсем не значит что его не надо знать на 5-10%. Тут как у артистов, они должны играть не только хорошие положительные роли. Я более не знаю мейнстрима типа ангуляра которое перетянет одеяло у себя от Java по БЛ. забыл никВот ReactJS смотрю на слуху менее чем ангуляр, поэтому пока не смотрел. imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 11:47 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39186197&tid=2124282]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 574ms |

| 0 / 0 |
