0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 79
|
|||||||||||||||||||||
Spring Boot REST сервис08.11.2016, 13:57. Показов 3182. Ответов 28
Метки нет Все метки)
(
Создаю в учебных целях REST сервис и постоянно возникают различные вопросы, каждый раз создавать тему не хочется по этому буду спрашивать все тут.
Имеется: pom.xml
Получение одной записи по id из БД работает. Добавление одной записи в БД работает но не присваивается дата, так же и при добавлении массива данных. Если в методе addMessage раскомментировать строку newMessage.setCreated(new Date()); то дата добавляется. Я так понимаю что конструктор в модели Message должен добавлять дату автоматически, но если это не происходит, значит он не используется. Попытался с помощью дебагера отследить, не получилось. 1. Хочется понять механику работы Контроллер-Конструктор? 2. Нужно ли для этих целей использовать Service и вообще когда нужно? В интернете куча примеров но все по принципу "как короче, в жизни делается по другому". 3. Ну и вопрос с датой решить.
0
|
08.11.2016, 13:57 | |
Ответы с готовыми решениями:
28
Spring MVC, Spring REST Что такое Spring, Spring Boot? |
![]() ![]() 2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
08.11.2016, 14:18 | ||
Для заполнения даты, используйте аннотацию @PrePersist У вас вызывается дефолтный конструктор для вашего объекта поэтому дата не заполняется. Желательно ввести слой сервиса и там проводить манипуляции с моделью. Нежелательно отдавать и принимать от клиента объекты модели. Для этого нужно создавать DTO объекты и работать с ними.
0
|
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
|
|
14.12.2017, 15:51 | |
У меня такой вопрос. Попытался я запустить spring boot server, с которым должно работать клиентское приложение что я разрабатываю. pom.xml сервера вложенный - даже до возможности нормального запуска не может дойти, ибо постоянно оновляются депенденси (выставлена опция в эклипсе - думаю грузяться только нужные зависимости) или оформляется воркспейс. Сперва было скачано 50, потом 100, и потом еще 200 мб, и постоянно происходит оновление. С чем это связано - проверял - приведенные депенденси и плагины мейвена весят не больше 500кб-1мб каждый, а их всего там -- 7-10. Еще есть приведенные репозитории и репозитории плагинов - может они хотят загрузится полностью на системник моего ПК, где места вообще минимум - как остановить эту уже фактически безперестанную загрузку - в настройках эклипса - или удалить репозитории из pom.xml?
0
|
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
|
|
14.12.2017, 16:27 | |
Так в чем может причина такой загрузки. Может точно всеь репозиторий пробует скачать. Сколько там депенденси надо для спринг бута?
Не хочется использовать командную строку, надо указывать настройки конфигурации, версию джава 8, вместо уже заложенной в реестр даже - версии 7.
0
|
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
|
|
14.12.2017, 18:34 | |
Хорошо.
Но разобраться надо почему мейвен качает и качает в локальный репозиторий. У меня обозначена опция - download artifact sources. Может ее снять. Но когда я в начале пользование мейвеном (было это недавно) это не обозначал то были проблемы даже с созданием мейвен проэкта, и жаловался эклипс на артифакты. Потом update index on startup - собственно что и осуществлялось, но и место на системном диске исчезало быстро. Для разрешения этой проблеы предлагают вместо встроееного использовать локальный мейвен. Еще есть отмеченная опция - do not automatically update from repository. Особого представление нет без чего не может работать эклипс-мейвен, и как это отобразится после "снятие" этих опций в настройках эклипса.
0
|
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
|
|
14.12.2017, 20:09 | |
Вот результат запуска команды: mvn spring-boot:run -X -e
1. В не-парент модуле - Caused by: org.apache.maven.project.DependencyResol utionException: Could not resolve dependencies for project <ИМЯ СЕВРЕРА>:jar:0.0.1-SNAPSHOT: Failure to find <ИМЯ СЕРВЕРА>.Common:jar:1.0-SNAPSHOT in https://repo.spring.io/snapshot was cached in the local repository, resolution will not be reattempted until the update interval of spring-snapshots has elapsed or updates are forced 2. В парент модуле (где есть парент pom.xml) - [ERROR] No plugin found for prefix 'spring-boot' in the current project and in t he plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Documents and Settings\...\.m2\repository), central (http://repo.maven.apache.org/maven2)] ->org.apache.maven.plugin.prefix.NoPlugin FoundForPrefixException: No plugin found for prefix 'spring-boot' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C :\Documents and Settings\...\.m2\repository), central (http://repo.maven.apache.org/maven2)]
0
|
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
|
|
14.12.2017, 23:04 | |
Я уже поодключал все опции апдейта при стартапе проэкта мейвен в Эклипсе, отключил загрузку артифактов но оно дальше апдейтится. Когда я каким то образом получил succes build парент модуля (вместе с тремя производными), получил потом succes build спринг сервера, но его запускал только ка Run as --> Maven опции. Но никакого сервера на localhost:8080 нету. Разве по новой импортить этот проэкт, и снова ждать эти бесконечные апдейты. Проблема в том что с самого начала модуль сервера был позначен красным - то биш ошибки но не известно какие. В то время когда два других модуля (один дополнительный, второй еще не заполненый) с самого начала поубавились "ошибок".
Интересно бы узнать какие опции мейвена в эклипсе использовать чтобы не допускать такого апдейта с самого начала?
0
|
![]() 378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
|
|
15.12.2017, 05:33 | |
никак, eclipse, а вернее maven, тянет все необходимое для старта проекта, что с этим можно сделать я тебе ответил тут и в параллельной ветке, что не понятно?
Добавлено через 1 минуту А на счет помеченного красным - man clean install и вывод в студию
0
|
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
|
|
15.12.2017, 07:22 | |
Я поотменял все опции апдейта и загрузки артефактов. И получил вот такой список экспепшенов связанных с mysql-connector при запуске сервера-- мейвен билд проходит успешно.
ERROR 4088 --- [ main] com.zaxxer.hikari.pool.HikariPool : testdb - Exception during pool initialization. com.mysql.jdbc.exceptions.jdbc4.Communic ationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. Такие советы не помогают. Добавлено через 14 минут Выходит что при запуске mysql как сервиса - уже другой эксепшен - com.mysql.jdbc.exceptions.jdbc4.MySQLSyn taxErrorException: Unknown database '<NAME>', хотя нейм это - имя таблицы а не БД? Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: org.hibernate.service.spi.ServiceExcepti on: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEn vironment] org.springframework.jdbc.support.MetaDat aAccessException: Could not get Connection for extracting meta data; nested exception is org.springframework.jdbc.CannotGetJdbcCo nnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyn taxErrorException: Unknown database '<NAME>' Выходит вопросы уже к создателям JPA - структур. Добавлено через 8 минут В свойтсвах спринг бута uri - spring.datasource.url = jdbc:mysql://localhost:3306/NAME?useSSL=false Почему имя создаваемой в режиме апдейта неизвестно, если служба mysql не вызывает прежних проюлем с конекшеном с бд. Добавлено через 4 минуты Посмотрел на примеры в интернете - не может ли эта строка быть разделена на две отдельных свойств - spring.datasource.url = jdbc:mysql://localhost:3306/NAME? useSSL=false Хотя экспешн жалуется на имя бд.
0
|
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
|
|
15.12.2017, 16:19 | |
NAME это лиш плейсхолдер - имя конечно другое. Но не моя бд - потому использовал NAME.
Но разве само название на что-то влияет. Хотя как я уже указывал - имя этой еще не созданной на момент запуска сервера бд совпадает с именем одной из нескольких таблиц этой бд. Если Unknown database - может ее сперва надо создать, а потом использовать в режиме апдейт - spring.jpa.hibernate.ddl-auto = update Добавлено через 1 минуту А другие ексепшены из стека могут быть связаны с этой проюлемой или это уже другие причины? Добавлено через 1 час 21 минуту Вот собственно ответ на такой же вопрос:https://stackoverflow.com/ques... tabase-xyz То есть надо создать эту бд - например - market. Где ее создавать, в какой папке? - и надо ли мне создать только пустую бд, или все таблицы с полямы - например с помощью mysql workbench. Добавлено через 15 минут Действительно в коде есть анотации о таблицах? а не о бд. Если надо только вручную создать бд, то как ее повязать с анотациями jpa, где размещать эту бд - в папке ресурсы спринг-бут сервера? Еще такой момент что в проэкте нет файла конфигурации - persistence.xml.
0
|
![]() ![]() 2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
15.12.2017, 16:27 | ||
arts1, мало что понял из вашего комментария. БД нужно создавать руками. На момент запуска приложения, БД должна быть создана.
Таблицы можете сами создать или сгенерировать с помощью DDL
0
|
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
|
|
15.12.2017, 20:49 | |
Как тогда спринг-бут "на ходу" найдет эту таблицу?
Таблицы можете сами создать или сгенерировать с помощью DDL -- так анотации JPA для чего? Что то очень складно - если есть запрос эксепшена что нету такой бд, то действительно в анотациях она не обозначена - но о таблицах есть информация. Хотя не понятно почему не предусмотрено создание бд автоматически, если эта название предполагаемой бд обозначено в свойствах спринг-бута.
0
|
![]() ![]() 2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||||
16.12.2017, 01:18 | ||||
0
|
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
|
|
16.12.2017, 03:56 | |
Вот наглядное и простое пособие: https://spring.io/guides/gs/accessing-data-mysql/
Там и прямо указано, "что начинали из create, а потом можно переключится на update/none". Я могу предположить, что через create режим, можно автоматически создать структуру бд, и может быть и саму бд. А потом переключится в режим апдейта, который манипулирует структурой бд в соответсвие с анотациями.
0
|
![]() 3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
16.12.2017, 10:55 | |
arts1, ты какую то околесицу несёшь сразу в нескольких темах одновременно. Почему бы тебе не попробовать сделать все, чего ты пишешь, разобраться в терминах, в устройстве, например.
0
|
16.12.2017, 10:55 | |
Помогаю со студенческими работами здесь
20
Spring в Spring Boot context Spring, REST, Json Spring Rest авторизация Spring + hibenate, REST Boot rest service docs Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
|
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
|
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
|
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг.
Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя.
Странные серые краски проникают и. . .
|
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
|
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
|
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
|
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
|
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
|
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
|