|
|
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
В принципе, я и так разберусь в проекте, но хотелось бы, чтобы человек с улицы пришел, сел и за пару часов вкурил :)) Что использую: Maven, Hibernate, Spring MVC, БД (PostgreSQL хотя не суть). Задумался над структурой, если у меня сейчас такое количество пакетов и папок, то что будет, когда их будет хотя бы 30, не говоря уже о 100. Это же будет огромные количества однотипных папок, с однотипными файлами и т.д. Хотя по структуре вроде как все логично. Нужны будут REST-запросы, это 100%, и маппинг таблиц в бд из Entity-файлов, ну и остальные плюшки Hiber'а. Может что-то с чем-то объединить? Или какой другой подход использовать? Прикладываю скриншоты и код ниже. .models.security.User.java Обычный Entity-файл Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. .models.security.UserDao.java Интерфейс Код: java 1. 2. 3. 4. 5. 6. 7. .dao.security.UserDaoImpl.java имплементация интерфейса Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. .dao.security.UserProvider.java Код: java 1. 2. 3. 4. 5. UserController Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:41 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
развернули основные папки... :) Здесь нельзя сразу несколько скринов прикрепить) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:42 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
И еще один, последний... поставил черточки маркером, чтобы визуально было проще разделить эту пачку папок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:42 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
да твоюж! имя пакета всё-таки спалил))) В общем, хотел бы получить критику по самую не балуйся, а так же советы, кто как подобные проекты пишет так, чтобы было потом не больно в них разбираться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:44 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Устал уже повторять. Пакеты нужно организовывать по фичам приложения, а не по слоям. https://www.google.com/search?q=package by feature not layer Если у вас появляется однотипный код, его нужно рефакторить и инкапсулировать общую функциональность, чтобы когда её придётся править, её не пришлось бы править везде. lombok - убираем все свойства и toString() из сущностей. С hashCode(), кстати в ORM не тривиально. Если у вас сущности не сохранены ещё, то у них у всех hashCode 0. Может боком вылезти. UserDaoImpl не нужен. Нужен Spring Data. DAO не нужен. Нужен Repository. Это разные паттерны. Что за UserProvider без бутылки не разобраться. Не хватает в имени класса ключевого слова из модели предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:48 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Пакеты controllers, dao и models не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:50 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Называние UserProvider - ни о чем. Возможно имеется в виду Transaction Script, который инкапсулирует workflow модели предметной области? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 15:53 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNixic, Называние UserProvider - ни о чем. Возможно имеется в виду Transaction Script, который инкапсулирует workflow модели предметной области? нет, нет, там будут методы аля: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Только без ResultSet'а, будет, а Hibernate'овскими запросами, я пока не готов сходу написать пример, но суть такая, что именно в этом классе будет вытаскивание данных из бд в Листы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:29 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczUserDaoImpl не нужен. Нужен Spring Data. Неоднозначно. Проект на скрине это без спринга на хиберAPI. Тогда пусть топик и проект выкинет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:31 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Это DAO. NixicТолько без ResultSet'а, будет, а Hibernate'овскими запросами, я пока не готов сходу написать пример, но суть такая, что именно в этом классе будет вытаскивание данных из бд в Листы. Для CRUD отдельного слоя не нужно. Для сложных запросов - Repository. Смотри Spring Data. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:31 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNixic, Называние UserProvider - ни о чем. Возможно имеется в виду Transaction Script, который инкапсулирует workflow модели предметной области? Почитал паттерн, да, именно это и имелось ввиду :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:32 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Чет я не понял. Если хиберAPI то будет маппинг и session.saveORUpdare Или ,springData? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:36 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic Код: java 1. 2. 3. Это вообще за гранью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:39 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123Nixic, Чет я не понял. Если хиберAPI то будет маппинг и session.saveORUpdare Или ,springData? По идее, я хотел бы создавать свои сущности, не заботиться при этом о БД, и вообще поменьше в нее заходить по ходу разработки. Но в дальнейшем, возможно, эта необходимость отпадет и поля с таблицами будут добавляться в БД руками. Вообще, я так понимаю, нужно смотреть в сторону Spring Data, уже открыл пару ссылок :) А что, получается, что либо маппинг сущностей в БД, либо Spting Data? Одно исключает другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:40 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczУстал уже повторять. Пакеты нужно организовывать по фичам приложения, а не по слоям. https://www.google.com/search?q=package by feature not layer Спасибо, это мы уже пару тройку лет назад обсуждали, да!)) но повторение мать сами знаете, кого )) Спасибо, перекидаю согласно бизнес-логики. Blazkowiczlombok - убираем все свойства и toString() из сущностей. Да, я его как-то пробовал, мне понравилось, хотя некоторых раздражает то, что кода не видно) BlazkowiczС hashCode(), кстати в ORM не тривиально. Если у вас сущности не сохранены ещё, то у них у всех hashCode 0. Может боком вылезти. Понял, пример создан на основе темплейта из Нетбинса, там он именно так генерится. BlazkowiczUserDaoImpl не нужен. Нужен Spring Data. DAO не нужен. Нужен Repository. Это разные паттерны. Уже читаю, спасибо. Кстати, это у меня не коммерческий проект, хоть там и сущности аля Контрагент, пакеты Отдела продаж, Снабжения, а попытка в свободное от работы на работе время, переписать основу старого своего проекта, где по возможности нужно использовать наиболее популярные технологии, приемы, паттерны и т.д. Ну а дальше уже перейти к клиентской части и там использовать что-то из современных JS фреймворков/библиотек, React JS в частности, хочу в нем использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:48 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123Nixic Код: java 1. 2. 3. Это вообще за гранью. Да я не дописал)) и вообще не буду этим пользоваться) Написано же) Ладно хоть точки с запятой поставил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:50 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Код: java 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:50 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicА что, получается, что либо маппинг сущностей в БД, либо Spting Data? Одно исключает другое?да. Выбирай. Золотой пули нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:52 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123Nixic Код: java 1. 2. 3. Это вообще за гранью. А кстати, что тут такого? Берем создаем юзера, из резултСета тянем имя, сеттим ему имя, потом тут же надо было дописать, кладем его в лист. потом этот лист возвращаем и используем, вроде как обычно... нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:52 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, В цикле это jdbc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:54 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicА что, получается, что либо маппинг сущностей в БД, либо Spting Data? Одно исключает другое? Вы кажется недочитали про Spring Data. Это удобная обертка над JPA, чтобы избавится от всякого повторяющегося однотипного кода, о котором вы спрашиваете. А JPA, соответсвенно API, например, к Hibernate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:56 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Где то тема была, обсуждали предпочтения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:58 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Это да, еще не прочитал совсем ничего почти :) Пойду читать про Spring Data, раскидывать пакеты/классы по слоям по БЛ, подключать lombok... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 16:59 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Спринге больше магии. Нравится, делай. Если нет, то хиберApi. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2018, 17:08 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicЭто да, еще не прочитал совсем ничего почти :) Пойду читать про Spring Data, раскидывать пакеты/классы по слоям по БЛ, подключать lombok... :) Заодно про реализацию HATEOS в Spring... Чтобы REST-контроллеры не писать :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2018, 05:50 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Выкинуть нахер жаву :) И тогда будет вот это (это лишь один из вариантов, код руби, но есть и другие альтернативе если руби не нравится). Код: ruby 1. 2. 3. 4. 5. 6. Вместо этой портянки Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 18:28 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
private, Теперь на хибер API дай и удивись) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2018, 18:37 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
private, А можно писать так Код: java 1. 2. 3. 4. 5. 6. 7. При этом можно использовать все библиотеки и фреймворки Java <:o) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2018, 05:47 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Можно - на многих языках можно создавать компактно и просто. Например жаваскрипт современный практически не уступает руби по компактности и мощности, а с ТайпСкриптом даже еще и надежней становится с типами. И котлин тоже неплох. Но почему-то весь реальный код на жава (и котлин там-же) - это портянки как в примере выше. Вот реально не найти на гитхабе проекта на жаве где бы - не было длиннющих переменных на полстроки, и вообще линий длинных - кучи скобок - фактори билдер провайдер медиейтор стратеджи - и т.п. - хорошо отформатированного кода, где аттрибуты и пр. сгруппировано так чтобы было компактно и легко читать. Вот даже в твоем примере, смотри, можно его улучшить Код: java 1. 2. 3. 4. 5. 6. Но нет, ты даже не потрудился поставить отступы чтобы читать было проще, размазал код по странице так как идея отформатировала от балды и готово. В этом проблема, жава проекты и жава код - это какая-то мазня на которую неприятно смотреть. Как боливудские фильмы - вроде сюжет тот-же, но не то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2018, 13:36 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
privateВ этом проблема, жава проекты и жава код - это какая-то мазня на которую неприятно смотреть.Нехватка синтаксического сахара порождает boilerplate © privateКак боливудские фильмы - вроде сюжет тот-же, но не то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2018, 13:50 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
privateНо нет, ты даже не потрудился поставитьты сам трудился? Нафига ты вывалил код первый попавшийся? Я согласен что java многословен, но сравнивать с js глупо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2018, 14:08 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Спустя две недели удалось вернуться к проекту, не то, чтобы работы куча, а просто как-то отвлёкся )) Два дня назад решил-таки подключить Spring Data JPA и... провозился 1.5 дня с чтением документации и стековерфлоу, потому как я не понимал, почему везде в книгах и в доках интерфейс @Autowired без реализации, а у меня всё то же самое и выдает ошибку. В итоге на одном из форумов увидел, что JPA 2+ требует Spring 5-й версии, а я юзал 4-й. теперь такие версии подключил и всё взлетело Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Код: java 1. 2. 3. 4. 5. Над этим текстом код репозитория, а теперь вот такой вопрос, если я, захочу использовать, добавить свои сигнатуры методов с именованием не аля findPhoneNumber(String phoneNumber), который по имени метода, вроде как должен построить автоматом запрос, хотя я не уверен из-за кемелКейса в имени метода... А что-то типа getUserByHisName() имя так себе, но не смог ничего прямо сейчас придумать :) Получается, что если спринг не сможет сгенерить запрос, то надо где-то его реализацию сделать, правильно? Сейчас у меня в контроллере указано так: Код: java 1. 2. ну и метод, какой-никакой) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. имя такое, потому что тут же в методе используются варианты для REST запросов. Через Criteria и просто через Код: java 1. Должен ли я теперь создать отдельный класс аля UserDao, затем добавить его реализацию UserDaoImpl и использовать именно её... Или же, есть какой-то вариант, использовать всё тот же интерфейс без явной реализации UserRepository, но как, кажется это нереально? Как бы это всё покрасивше сделать? Спасибо :) п.с. HATEOAS посмотрел, попозже, возможно, добавлю, пока разберусь с Spring Data :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 08:37 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123NixicА что, получается, что либо маппинг сущностей в БД, либо Spting Data? Одно исключает другое?да. Выбирай. Золотой пули нету. Кстати, я тут это... у меня и то и то используется :) То есть я могу смапить всё что есть и одновременно юзать Spring Data. Правда тут получается что у меня в двух местах сейчас прописана EntityManagerFactory: в файле с настройками и бинами и в так называемом классе HibernateUtil где EntityManagerFactory создается на основании persistence.xml ладно хоть и там и там датасорс подтягивается через jndi из томката. Не знаю, насколько это кашерно, но работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 08:53 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicНе знаю, насколько это кашерно, но работает...какой смысл на двух стульях сидеть? Выбери где меньше кода и закрывай тему. Тема то про выбор, а не написание проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 09:07 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123NixicНе знаю, насколько это кашерно, но работает...какой смысл на двух стульях сидеть? Выбери где меньше кода и закрывай тему. Тема то про выбор, а не написание проекта. Просто я люблю сначала всех посмотреть) И как понять, где меньше кода при определенных потребностях, если не пробовать писать проект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 10:32 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Сейчас приведи код сюда со всеми конфигами спринг и без спринга хибер api. Результат не виден. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 10:35 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
persistence.xml Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. pom.xml Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. WebConfig.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. HibernateUtil.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. User.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. UserRepository.java Код: java 1. 2. 3. 4. 5. 6. UserController.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. context.xml в Tomcat'е 9-м в папке conf Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. Вроде всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 12:42 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Большая работа). Без спринга, на хибере вроде в 2 раза меньше кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 12:48 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Если для вывода фио юзверя надо 1500 строк руками, фигово ты выбирал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 12:58 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Мне просто в свободное время нужно было попробовать некоторые варианты, которые вдруг когда-нибудь понадобятся. Ну и плюс, можно сказать потом, что да, работал с этим. Ну и второй раз разбираться, даже спустя время или даже ВРЕМЯ)) все равно легче, тем более если будет лежать пример использования в своих заначках. Про большую работу я понял, что сарказм) Но с чего-то надо начинать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 13:15 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Ну, для себя это понятно. А для других показал ужасы java. На jdbc 3 !!!!! строки кода. У тебя 1500 строк, причем ручного кода. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 13:42 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, огромное спасибо!! теперь у меня есть ссылка для демонстрации разницы моего подхода и "стандартного" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 13:59 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
вадя, Он пока троечник))). А ты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 14:02 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123вадя, Он пока троечник))). А ты?у меня хватает мозгов чтоб не делать такое, а заранее представить это. и оценить время и затраты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 14:12 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
вадяменя хватает мозгов-1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 14:18 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Не используйте интерфейсы для бинов. Они не нужны. Интерфейсы нужны были в старых EJBях ибо прокси создавались через java.lang.reflect.Proxy. В спринге этого не требуется, можно инжектить сразу реализации. Уберите гетеры и сетеры из ентитей. Они там не нужны - вы всё равно не будете переопределять логику внутри. Вообще используйте гетеры и сетеры по минимуму - антипаттерн. Инжекте сразу в приватные поля. Названия пакетов можно сократить если вы не собираете библиотеки. Спринг дружит с хибернейтом, есть хелперы. Не юзайте criteria api - код превращается в месиво и сложно отлаживать запросы в БД. Лучше создавайте naming queries. Не переопределяйте equals и hashCode без надобности. Функциональная декомпозиция лучше послойной. Тесты пишутся в директории src/main/test а код в src/main/java. Если юзаете автосканинг, то будет долго стартовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 14:25 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Спасибо, учту, кое что уже поправил, в частности unregesteredТесты пишутся в директории src/main/test а код в src/main/java. сейчас так, а тесты не пишу, пока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 14:32 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
В идее можно настроить чтобы *.iml были внутри .idea директории ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 14:35 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicPetro123Nixic, Чет я не понял. Если хиберAPI то будет маппинг и session.saveORUpdare Или ,springData? По идее, я хотел бы создавать свои сущности, не заботиться при этом о БД, и вообще поменьше в нее заходить по ходу разработки. Но в дальнейшем, возможно, эта необходимость отпадет и поля с таблицами будут добавляться в БД руками. Вообще, я так понимаю, нужно смотреть в сторону Spring Data, уже открыл пару ссылок :) А что, получается, что либо маппинг сущностей в БД, либо Spting Data? Одно исключает другое? Никогда не создавайте ничего руками. Все sql-скрипты должны быть упорядочены и храниться в репозитории ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 14:46 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregesteredВсе sql-скриптыпока нет необходимости писать select вообще. Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 14:52 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123unregesteredВсе sql-скриптыпока нет необходимости писать select вообще. Так? Не понял вопроса. Я про модификацию структуры БД и миграцию данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:03 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregestered, Нету этого в java. В шарпе есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:17 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Заметил косяк) Если добавить в сущность User поле: Код: java 1. 2. Кстати, не уверен, что нужно new... поправьте. То будет вываливаться ошибка: Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException: блаблабла Could not write JSON: failed to lazily initialize a collection of role: блаблабла Оказалось нужно добавить в WebConfig менеджера транзакций Код: java 1. 2. 3. 4. И в нем же выше исправить аннотацию так: Код: java 1. Скорее всего это лишнее, потому что мне кажется, что спринг бы искал его именно по этому же имени, лень проверять, конкретизировал на всякий случай имя. В контроллере нужно при этом добавить аннотацию @Transactional Какая ж все-таки запутанная схема :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:19 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicКакая ж все-таки запутанная схема :)ты же без спринга не пробовал. Каждому своё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:23 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123unregestered, Нету этого в java. В шарпе есть. Не врубился: чего нет в джаве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:35 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregestered, В энтерпрайзе проектах чаще бд уже есть или делается своими инструментами. Т.е. к этому топику отношения не имеет. IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:48 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123NixicКакая ж все-таки запутанная схема :)ты же без спринга не пробовал. Каждому своё. Как не пробовал :) - два проекта по 80+ сущностей без спринга) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:49 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123unregestered, В энтерпрайзе проектах чаще бд уже есть или делается своими инструментами. Т.е. к этому топику отношения не имеет. IMHO. Да шо вы говорите. Наверное самозарождается, не иначе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:51 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregesteredPetro123unregestered, В энтерпрайзе проектах чаще бд уже есть или делается своими инструментами. Т.е. к этому топику отношения не имеет. IMHO. Да шо вы говорите. Наверное самозарождается, не иначе. Имелось ввиду, что когда приходишь на проект не с нуля, то уже есть БД. или если с нуля, то есть Базисты, БДэшники, которые рулят БД, а джависты пилят под неё свой проект. А потом и то и то подстраивается друг под друга. А не магическое появление БД из мирового эфира)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:55 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Nixic, Он делает магией hiber.hbm2dll.ShemaExport каждый раз приходя на работу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 15:57 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Не знаю про что тут речь идёт. В большинстве проектов с которыми работал БД создавалась либо модифицировалась разработчиками. Ни разу не приходилось кого-нибудь дёргать чтобы БД поменять. Делаются бекапы и мигрируется что нужно. Админы не в курсе как системы работают, их задача обслуживание, ничего править в БД самовольно они не будут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 16:38 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregesteredАдмины не в курсе как системы работают, их задача обслуживание, ничего править в БД самовольно они не будутну дак маленькая организация). В большой вам даже логин не дадут на create table, trigger... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 16:45 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123unregesteredАдмины не в курсе как системы работают, их задача обслуживание, ничего править в БД самовольно они не будутну дак маленькая организация). В большой вам даже логин не дадут на create table, trigger... К девелоперской базе есть доступ на запись у разработчиков (иначе как работать). Все скрипты комитятся в гит, которые потом накатываются на продакшен миграционными утилитами. Что в маленькой, что в большой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:40 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregesteredК девелоперской базе есть доступ на запись у разработчиков (иначе как работать). Все скрипты комитятся в гит, которые потом накатываются на продакшен миграционными утилитами. Что в маленькой, что в большой. Точнее: скрипты комитятся в гит, делается релиз бренч всего кода (sql, java, файлы). Бренч тестируется на тестовой и затем на UAT (включая load и stress тесты). И затем всё это дело накатывается деплоймент утилитами. Никакого логина не надо: весь деплоймент происходит по нажатию кнопки. Никто не будет лезть в продакшен базу меняя по наитию триггеры туда-сюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 17:53 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregesteredдеплоймент утилитами.кем и с каким логином? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 18:01 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
OFF unregesteredНикакого логина не надо: весь деплоймент происходит по нажатию кнопки.вот как вас пускать к БД какого нибудь завода или банка, если вы бд не знаете. Только кнопку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2018, 18:38 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123кем и с каким логином? Например админом. Но продакшен база напрямую не трогается. Petro123OFF unregesteredНикакого логина не надо: весь деплоймент происходит по нажатию кнопки.вот как вас пускать к БД какого нибудь завода или банка, если вы бд не знаете. Только кнопку. Почему? Дев база имеет аналогичную структуру. Это во-первых. А во-вторых есть такая замечательная штука как рид-онли акцесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 00:43 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
privateМожно - на многих языках можно создавать компактно и просто. Например жаваскрипт современный практически не уступает руби по компактности и мощности, а с ТайпСкриптом даже еще и надежней становится с типами. И котлин тоже неплох. Но почему-то весь реальный код на жава (и котлин там-же) - это портянки как в примере выше. Вот реально не найти на гитхабе проекта на жаве где бы - не было длиннющих переменных на полстроки, и вообще линий длинных - кучи скобок - фактори билдер провайдер медиейтор стратеджи - и т.п. - хорошо отформатированного кода, где аттрибуты и пр. сгруппировано так чтобы было компактно и легко читать. Это бывает когда мидл девелоперы начитаются книжек про паттерны и начинают их клепать где не попадя. А всё остальное: про переменные скобки и пр - от недостатка опыта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 01:05 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregestered, Давайте ближе к теме. Зачем в демке выше писать руками select трали вали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 07:16 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123unregestered, Давайте ближе к теме. Зачем в демке выше писать руками select трали вали? Я вам не баба чтобы что-то вам давать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 10:18 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregestered, Тогда не флуди. Половину поста верно ты подметил. А про именованные запросы нет. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 10:22 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
А что не так с именованными запросами. Ну можно и так ембедить. Самое главное - без критерия апи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 13:52 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
unregesteredА что не так с именованными запросами. Ну можно и так ембедить. Самое главное - без критерия апи. Там критерия по ТЗ и не нужно. Но автору пофиг. Он самоустранился. А зачем нам больше него работать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 14:08 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123unregesteredА что не так с именованными запросами. Ну можно и так ембедить. Самое главное - без критерия апи. Там критерия по ТЗ и не нужно. Но автору пофиг. Он самоустранился. А зачем нам больше него работать). Не стыдно и помолчать, коли нечего сказать ) По поводу ТЗ, ТЗ нет, я просто сделал проект для изучения возможностей, для выстраивания костяка так сказать, для какого-то типового для меня лично, проекта. Кстати, прикрутил HATEOAS прикольная вещь, только вот к Entity оно не прикручивается, там надо расширять класс org.springframework.hateoas.ResourceSupport; А у него уже есть метод getId(), поэтому получается попа. Выкрутился тем, что создал трансиентное поле в классе сущности: @Transient private List<Link> _links; Link это вот эта вот: org.springframework.hateoas.Link; Кроме того, оказалось, что Hibernate не любит по умолчанию трансиентные поля и пришлось добавить в конфиг: hm.disable(Hibernate5Module.Feature.USE_TRANSIENT_ANNOTATION); Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Ссылку формирую в контроллере так: Кину с мусором и с кривыми названиями запросов, но суть не в этом. В частности Resource userResource = new Resource(user); здесь лишнее, но пока пусть лежит, надо изучить получше и потом удалить или как-то использовать. getUsersContact как бы совсем не контакт, но не суть :)) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. теперь получилась вот такая вот красотища на выходе :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 14:45 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Кстати Spring Data JPA вообще отличная вещь! Вот обновление поля например, никаких там апдейт, маппинга и прочего, save и всё! :) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Мне прям очень понравилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 14:51 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicВот обновление поля например, никаких там апдейт, маппинга и прочего, save и всё! :) Че за ерунда? С чем сравнил? - без маппинга не бывает - в хибер api тоже самое, но ты его не делал - код в тыщу строк ты написал. С чего радость? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:13 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicНе стыдно и помолчать, коли нечего сказать )топик, как я встал и что завтракал, никому не интересен). Вот и помолчи ....не по делу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:18 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
Petro123NixicНе стыдно и помолчать, коли нечего сказать )топик, как я встал и что завтракал, никому не интересен). Вот и помолчи ....не по делу. Дак я вроде молчал, не?) Умолкаю, надеюсь, кому-то да пригодится. Закрываемся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:44 |
|
||
|
Web-приложение, структура... что изменить, сделать проще, понятнее?
|
|||
|---|---|---|---|
|
#18+
NixicДак я вроде молчал, не?)не. Ты продолжил накидывать больше кода в примере Hello world. Счас придет вадя и скажет что ОРМ это прокладка Г на тыщу строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:54 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2122251]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
164ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
118ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 562ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...