通过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.