通過WebSocket發送時,我們使用JsonView進行序列化。春季靴子休息



Spring Boot Rest應用程序:使用JsonView批註通過WebSocket發送的欄位限制,對Json中的對象進行序列化。這將使我們僅將必要的數據發送到客戶端應用程序。

視頻中的代碼:
https://github.com/drucoder/sarafan/tree/WsJsonView

同樣,在這兩者之間,讓我們配置其餘應用程序,以便所有更改請求都通過http請求,並且更改通知僅通過WebSocket發送。

為此,我們將添加一個新的DTO對象,該對象將存儲該對象,其類型以及所使用的操作類型(CREATE,UPDATE,REMOVE)。

龍目島項目:

Jackson和JsonView設置:

➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

➡Twitter:https://twitter.com/letsCodeDru
Disc在Discord中聊天:https://discord.gg/xs6XxSx
➡VKontakte組:https://vk.com/letscodedru
gram電報頻道:https://t.me/letsCode_dru
Tele在電報中聊天:https://t.me/joinchat/FeiP9xEhqHajfqhLr4z-Nw

➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

支持項目:
➡Patreon https://www.patreon.com/letscodedru
➡Yandex.Money https://money.yandex.ru/to/41001451675086
➡貝寶paypal.me/letscodedru
➡Qiwi https://qiwi.me/letscode
Mo WebMoney /比特幣https://funding.webmoney.ru/d/drucoder

➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖

➡連結至頻道:https://www.youtube.com/channel/UC1g3kT0ZcSXt4_ZyJOshKJQ
to鏈接到Yandex.Zen:https://zen.yandex.ru/media/id/5ac20956168a91ffeae449c5。

42 comments
  1. Спасибо! Не могли бы вы объяснить, какова тут роль консюмера? Неужели не нагляднее было создать инстанс сендера с теми же переданными параметрами и методом send()?

  2. ООО одна из моих любимых песен КиШа!!

    А так , спасибо за уроки!!
    Их ценность еще более ощутима, когда проходит время и ты встречаешь подобные темы и тебе уже не кажется все это безумно сложным.

  3. Этот финт ушами не понял 5:26 зачем ловить один тип исключений и тут же бросать другой?

  4. Отличный мануал! Андрей, Вы на протяжении всех видео топите за Lombok, а почему не используете @RequiredArgsConstructor вместо ручного создания конструктора с final полями?

  5. Как можно победить вот такую ошибку при компиляции проекта?
    C:…sarafansrcmainjavainitcodesarafanutilWsSender.java:41: error: constructor WsEventDto in class WsEventDto cannot be applied to given types;

    new WsEventDto(objectType, eventType, value)

    ^

    required: no arguments

    found: ObjectType,EventType,String

    reason: actual and formal argument lists differ in length

    1 error

    Стабильно валится именно на этом. Отловить самостоятельно не получается.
    Код https://github.com/AlexLazareva/sarafan/blob/master/src/main/java/initcode/sarafan/util/WsSender.java

  6. Привет! Сутки уже ломаю голову. После прошлого урока все работало, а после этого – whitelabel при попытке авторизации There was an unexpected error (type=Internal Server Error, status=500).
    PreparedStatementCallback; SQL [UPDATE SPRING_SESSION SET SESSION_ID = ?, LAST_ACCESS_TIME = ?, MAX_INACTIVE_INTERVAL = ?, EXPIRY_TIME = ?, PRINCIPAL_NAME = ? WHERE PRIMARY_ID = ?]; ERROR: value too long for type character varying(100); nested exception is org.postgresql.util.PSQLException: ERROR: value too long for type character varying(100)
    org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [UPDATE SPRING_SESSION SET SESSION_ID = ?, LAST_ACCESS_TIME = ?, MAX_INACTIVE_INTERVAL = ?, EXPIRY_TIME = ?, PRINCIPAL_NAME = ? WHERE PRIMARY_ID = ?]; ERROR: value too long for type character varying(100); nested exception is org.postgresql.util.PSQLException: ERROR: value too long for type character varying(100)

    Что делать? 🙁

  7. У меня почему-то ни в какую не хотят работать сокеты. нет синхронизации между пользователями. подскажите в каком направлении копать. код перепроверил. спасибо.

  8. Вопрос куда мы это отправляем в космос ?
    в ws.js stompClient.send("/app/changeMessage", {}, JSON.stringify(message))
    есть адрес "changeMessage" мы же удалили

  9. Почему мы делаем splice в двух местах при удалении один раз в MessageList.vue и один раз в App.vue (две строчки уходит таким образом)? Я так понимаю нужно оставить только в App.vue

  10. У меня если перед удалением не проверять индекс на -1, удаляется лишнего.

  11. Интересный возник момент. При удалении сообщения из середины списка – удалялось сразу 2! сообщения (но только в активном браузере). Изменил немного метод deleteMessage в MessageList.vue:
    this.messages.splice(this.messages.indexOf(message), 1)
    на
    this.messages.splice(message.id, 1)
    – может кому будет полезно

  12. Ураааа!!!! Наконец-то!!!! Лучший формат и подача, а главное польза! Спасибо и с наступающим!

  13. Возьму на вооружение напевать песни, пока сервер стартует-рестартует, только на моем компе-старичке я целый альбом КиШа спою, пока проект сбилдится и стартанет )))

Comments are closed.